有人能告诉我当应用程序进入后台时如何注销UIWebview吗?
我需要通过UIWebview调用一个js函数,比如offline()。
当我用mywebview stringByEvaluatingJavaScriptFromString:@"offline()";调用这个函数时,这个方法不起作用。但是当应用程序返回到前台时,这是有效的。
我怎么才能让它工作呢?
发布于 2012-11-07 12:23:27
在应用程序进入后台之前,javascript可能没有及时执行。您可以通过在appdelegate的applicationWillResignActive方法中运行backgroundTask来请求更多时间:
bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
dispatch_async(dispatch_get_main_queue(), ^{
if (bgTask != UIBackgroundTaskInvalid){
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}
});
}];此外,确保在知道javascript完成后台任务后结束它(因为它的javascript在webview中,唯一的方法可能就是在N秒后调用它):
// After N sections execute this:
if (bgTask != UIBackgroundTaskInvalid) {
[[UIApplication sharedApplication] endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}https://stackoverflow.com/questions/13263001
复制相似问题