首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UIWebview注销

UIWebview注销
EN

Stack Overflow用户
提问于 2012-11-07 12:09:34
回答 1查看 169关注 0票数 0

有人能告诉我当应用程序进入后台时如何注销UIWebview吗?

我需要通过UIWebview调用一个js函数,比如offline()。

当我用mywebview stringByEvaluatingJavaScriptFromString:@"offline()";调用这个函数时,这个方法不起作用。但是当应用程序返回到前台时,这是有效的。

我怎么才能让它工作呢?

EN

回答 1

Stack Overflow用户

发布于 2012-11-07 12:23:27

在应用程序进入后台之前,javascript可能没有及时执行。您可以通过在appdelegate的applicationWillResignActive方法中运行backgroundTask来请求更多时间:

代码语言:javascript
复制
bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{                        
    dispatch_async(dispatch_get_main_queue(), ^{
        if (bgTask != UIBackgroundTaskInvalid){
            [app endBackgroundTask:bgTask];
            bgTask = UIBackgroundTaskInvalid;
        }
    });
}];

此外,确保在知道javascript完成后台任务后结束它(因为它的javascript在webview中,唯一的方法可能就是在N秒后调用它):

代码语言:javascript
复制
// After N sections execute this:
if (bgTask != UIBackgroundTaskInvalid) {
    [[UIApplication sharedApplication] endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13263001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档