2015-02-17 7 views
7

Ottenere un messaggio di avviso quando l'app è aperta in background. Quando chiudo l'app dallo sfondo quando avvio l'app non mi dà il messaggio di avviso. handleOpenURL non è in grado di richiamare in JavaScript quando l'app viene avviata per la prima volta. Di seguito sono riportati codiceHandle di PhoneegapOpenURL non richiamato all'avvio dell'app (iOS)

didFinishLaunchingWithOptions Codice

NSURL* url = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey]; 
NSString* invokeString = nil; 

if (url) { 
invokeString = [url absoluteString]; 
NSLog(@"iPaperReeder launchOptions = %@", url); 
} 

self.viewController.invokeString = invokeString; 

AppDelgate.m

if (!url) { return NO; } 
NSString* jsString = [NSString stringWithFormat:@"window.setTimeout(function(){ handleOpenURL(\"%@\"); }, 1)", url]; 
[self.viewController.webView stringByEvaluatingJavaScriptFromString:jsString]; 

// all plugins will get the notification, and their handlers will be called 
[[NSNotificationCenter defaultCenter] postNotification:[NSNotification notificationWithName:CDVPluginHandleOpenURLNotification object:url]]; 

return YES; 

Dovrebbe uscita a questa funzione javascript:

function handleOpenURL(url) { 
alert('invoke: ' + url); 
} 

Per favore aiutatemi.

+0

E 'di lavoro usa Cordova 3.6 version.Not lavorare in maggiore versione 3.7 Cordova –

+1

Provare ad aumentare la setTimeout da 1 a 1000 e vedere se il problema persiste. Mi sembra che la webview non sia completamente carica quando la provi per la prima volta. – caulitomaz

risposta

0

Credo che non si sta facendo in questo, si prega di seguire il mio codice, come di seguito:

Si può facilmente risolvere questo problema.

In "CDVHandleOpenURL.m" di file è necessario modificare il codice, come di seguito:

NSString* jsString = [NSString stringWithFormat:@"document.addEventListener('deviceready',function(){if (typeof handleOpenURL === 'function') { handleOpenURL(\"%@\");}});", url]; 

Per

NSString* jsString = [NSString stringWithFormat:@"if (typeof handleOpenURL === 'function') { handleOpenURL(\"%@\");} else { window._savedOpenURL = \"%@\"; }", url, url]; 

questo funzionerà perfettamente.

Buona fortuna

Problemi correlati