MOBILE-3534 ionic: Fix check device during loading
This commit is contained in:
		
							parent
							
								
									50b390deec
								
							
						
					
					
						commit
						8844abd857
					
				| @ -49,6 +49,7 @@ export class CoreSharedFilesModule { | ||||
|         // Register the handler.
 | ||||
|         delegate.registerHandler(handler); | ||||
| 
 | ||||
|         platform.ready().then(() => { | ||||
|             if (appsProvider.isIOS()) { | ||||
|                 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. | ||||
|      */ | ||||
|     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. | ||||
|      */ | ||||
|     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'); | ||||
| 
 | ||||
|         platform.ready().then(() => { | ||||
|             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.
 | ||||
|                 this.defineGetterSetter(FileReader.prototype, 'readyState', function(): any { | ||||
|                     return this._localURL ? this._readyState : this._realReader.readyState; | ||||
| @ -103,6 +105,7 @@ export class CoreFileProvider { | ||||
|                 this.defineEvent('onloadend'); | ||||
|                 this.defineEvent('onabort'); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
| @ -16,7 +16,7 @@ import { Injectable, NgZone } from '@angular/core'; | ||||
| import { Config, Platform, NavController } from 'ionic-angular'; | ||||
| import { TranslateService } from '@ngx-translate/core'; | ||||
| import { Network } from '@ionic-native/network'; | ||||
| import { CoreApp } from '../app'; | ||||
| import { CoreApp, CoreAppProvider } from '../app'; | ||||
| import { CoreFileProvider } from '../file'; | ||||
| import { CoreLoggerProvider } from '../logger'; | ||||
| import { CoreSitesProvider } from '../sites'; | ||||
| @ -47,6 +47,7 @@ export class CoreIframeUtilsProvider { | ||||
|             private utils: CoreUtilsProvider, | ||||
|             private domUtils: CoreDomUtilsProvider, | ||||
|             platform: Platform, | ||||
|             appProvider: CoreAppProvider, | ||||
|             private translate: TranslateService, | ||||
|             private network: Network, private zone: NgZone, | ||||
|             private config: Config, | ||||
| @ -56,8 +57,8 @@ export class CoreIframeUtilsProvider { | ||||
| 
 | ||||
|         const win = <WKUserScriptWindow> window; | ||||
| 
 | ||||
|         if (CoreApp.instance.isIOS() && win.WKUserScript) { | ||||
|         platform.ready().then(() => { | ||||
|             if (appProvider.isIOS() && win.WKUserScript) { | ||||
|                 // Inject code to the iframes because we cannot access the online ones.
 | ||||
|                 const wwwPath = fileProvider.getWWWAbsolutePath(); | ||||
|                 const linksPath = textUtils.concatenatePaths(wwwPath, 'assets/js/iframe-treat-links.js'); | ||||
| @ -72,8 +73,8 @@ export class CoreIframeUtilsProvider { | ||||
| 
 | ||||
|                 // Handle post messages received by iframes.
 | ||||
|                 window.addEventListener('message', this.handleIframeMessage.bind(this)); | ||||
|             }); | ||||
|             } | ||||
|         }); | ||||
|     } | ||||
| 
 | ||||
|     /** | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user