2012-11-07 24 views
0

任何人都可以告訴我如何註銷應用程序進入後臺時的UIWebview?UIWebview註銷

我需要通過UIWebview調用離線()等js函數。當我調用這個函數 [mywebview stringByEvaluatingJavaScriptFromString:@「offline()」]; 此方法不起作用。 但是,當應用程序進入前景時,這起作用。

我怎麼能得到它的工作?

回答

0

有可能在應用程序進入後臺之前JavaScript不會及時執行。您可以通過在你的appdelegate運行backgroundTask要求更多時間的applicationWillResignActive方法:

bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{       
    dispatch_async(dispatch_get_main_queue(), ^{ 
     if (bgTask != UIBackgroundTaskInvalid){ 
      [app endBackgroundTask:bgTask]; 
      bgTask = UIBackgroundTaskInvalid; 
     } 
    }); 
}]; 

還要確保結束後臺任務,一旦你知道你的JavaScript它完整的(因爲它的網頁視圖中的javascript,唯一的辦法可能只是在N秒後稱之爲):

// After N sections execute this: 
if (bgTask != UIBackgroundTaskInvalid) { 
    [[UIApplication sharedApplication] endBackgroundTask:bgTask]; 
    bgTask = UIBackgroundTaskInvalid; 
}