Merge pull request #2521 from crazyserver/MOBILE-3534
MOBILE-3534 ionic: Fix check device during loadingmain
commit
37b0447cfe
|
@ -49,6 +49,7 @@ export class CoreSharedFilesModule {
|
||||||
// Register the handler.
|
// Register the handler.
|
||||||
delegate.registerHandler(handler);
|
delegate.registerHandler(handler);
|
||||||
|
|
||||||
|
platform.ready().then(() => {
|
||||||
if (appsProvider.isIOS()) {
|
if (appsProvider.isIOS()) {
|
||||||
let lastCheck = 0;
|
let lastCheck = 0;
|
||||||
|
|
||||||
|
@ -75,5 +76,6 @@ export class CoreSharedFilesModule {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -392,7 +392,8 @@ export class CoreAppProvider {
|
||||||
* @return Whether the app is running in an Android mobile or tablet device.
|
* @return Whether the app is running in an Android mobile or tablet device.
|
||||||
*/
|
*/
|
||||||
isAndroid(): boolean {
|
isAndroid(): boolean {
|
||||||
return this.isMobile() && this.device.platform.toLowerCase() == 'android';
|
return this.isMobile() &&
|
||||||
|
((this.device.platform && this.device.platform.toLowerCase() == 'android') || this.platform.is('android'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -412,7 +413,8 @@ export class CoreAppProvider {
|
||||||
* @return Whether the app is running in an iOS mobile or tablet device.
|
* @return Whether the app is running in an iOS mobile or tablet device.
|
||||||
*/
|
*/
|
||||||
isIOS(): boolean {
|
isIOS(): boolean {
|
||||||
return this.isMobile() && this.device.platform.toLowerCase() == 'ios';
|
return this.isMobile() &&
|
||||||
|
((this.device.platform && this.device.platform.toLowerCase() == 'ios') || this.platform.is('ios'));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -81,8 +81,10 @@ export class CoreFileProvider {
|
||||||
|
|
||||||
this.logger = logger.getInstance('CoreFileProvider');
|
this.logger = logger.getInstance('CoreFileProvider');
|
||||||
|
|
||||||
|
platform.ready().then(() => {
|
||||||
if (appProvider.isAndroid() && !Object.getOwnPropertyDescriptor(FileReader.prototype, 'onloadend')) {
|
if (appProvider.isAndroid() && !Object.getOwnPropertyDescriptor(FileReader.prototype, 'onloadend')) {
|
||||||
// Cordova File plugin creates some getters and setter for FileReader, but Ionic's polyfills override them in Android.
|
// Cordova File plugin creates some getters and setter for FileReader, but
|
||||||
|
// Ionic's polyfills override them in Android.
|
||||||
// Create the getters and setters again. This code comes from FileReader.js in cordova-plugin-file.
|
// Create the getters and setters again. This code comes from FileReader.js in cordova-plugin-file.
|
||||||
this.defineGetterSetter(FileReader.prototype, 'readyState', function(): any {
|
this.defineGetterSetter(FileReader.prototype, 'readyState', function(): any {
|
||||||
return this._localURL ? this._readyState : this._realReader.readyState;
|
return this._localURL ? this._readyState : this._realReader.readyState;
|
||||||
|
@ -103,6 +105,7 @@ export class CoreFileProvider {
|
||||||
this.defineEvent('onloadend');
|
this.defineEvent('onloadend');
|
||||||
this.defineEvent('onabort');
|
this.defineEvent('onabort');
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -16,7 +16,7 @@ import { Injectable, NgZone } from '@angular/core';
|
||||||
import { Config, Platform, NavController } from 'ionic-angular';
|
import { Config, Platform, NavController } from 'ionic-angular';
|
||||||
import { TranslateService } from '@ngx-translate/core';
|
import { TranslateService } from '@ngx-translate/core';
|
||||||
import { Network } from '@ionic-native/network';
|
import { Network } from '@ionic-native/network';
|
||||||
import { CoreApp } from '../app';
|
import { CoreApp, CoreAppProvider } from '../app';
|
||||||
import { CoreFileProvider } from '../file';
|
import { CoreFileProvider } from '../file';
|
||||||
import { CoreLoggerProvider } from '../logger';
|
import { CoreLoggerProvider } from '../logger';
|
||||||
import { CoreSitesProvider } from '../sites';
|
import { CoreSitesProvider } from '../sites';
|
||||||
|
@ -47,6 +47,7 @@ export class CoreIframeUtilsProvider {
|
||||||
private utils: CoreUtilsProvider,
|
private utils: CoreUtilsProvider,
|
||||||
private domUtils: CoreDomUtilsProvider,
|
private domUtils: CoreDomUtilsProvider,
|
||||||
platform: Platform,
|
platform: Platform,
|
||||||
|
appProvider: CoreAppProvider,
|
||||||
private translate: TranslateService,
|
private translate: TranslateService,
|
||||||
private network: Network, private zone: NgZone,
|
private network: Network, private zone: NgZone,
|
||||||
private config: Config,
|
private config: Config,
|
||||||
|
@ -56,8 +57,8 @@ export class CoreIframeUtilsProvider {
|
||||||
|
|
||||||
const win = <WKUserScriptWindow> window;
|
const win = <WKUserScriptWindow> window;
|
||||||
|
|
||||||
if (CoreApp.instance.isIOS() && win.WKUserScript) {
|
|
||||||
platform.ready().then(() => {
|
platform.ready().then(() => {
|
||||||
|
if (appProvider.isIOS() && win.WKUserScript) {
|
||||||
// Inject code to the iframes because we cannot access the online ones.
|
// Inject code to the iframes because we cannot access the online ones.
|
||||||
const wwwPath = fileProvider.getWWWAbsolutePath();
|
const wwwPath = fileProvider.getWWWAbsolutePath();
|
||||||
const linksPath = textUtils.concatenatePaths(wwwPath, 'assets/js/iframe-treat-links.js');
|
const linksPath = textUtils.concatenatePaths(wwwPath, 'assets/js/iframe-treat-links.js');
|
||||||
|
@ -72,8 +73,8 @@ export class CoreIframeUtilsProvider {
|
||||||
|
|
||||||
// Handle post messages received by iframes.
|
// Handle post messages received by iframes.
|
||||||
window.addEventListener('message', this.handleIframeMessage.bind(this));
|
window.addEventListener('message', this.handleIframeMessage.bind(this));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue