首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >重新加载webview时EasyJSWebView中断

重新加载webview时EasyJSWebView中断
EN

Stack Overflow用户
提问于 2014-03-28 21:33:42
回答 2查看 1.4K关注 0票数 2

我一直在一个项目中实现EasyJSWebView,该项目在收到推送消息时弹出一个web视图。这在大多数情况下都很好用,直到您想要重新加载当前的webview。在这一点上,EasyJSWebView的功能中断,网页中的javascript无法与应用程序中运行的objective C通信。

这是我用来将界面添加到webview,然后在视图上加载页面的代码。

代码语言:javascript
复制
_webView.delegate = self;

javaScriptInterface* interface = [javaScriptInterface new];

[self.webView addJavascriptInterfaces:interface WithName:@"interface"];

interface.webView = self;  

[interface release];

[[NSURLCache sharedURLCache] removeAllCachedResponses];

[_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"mywebpage.com"]]];

如果我在webview上调用另一个loadrequest,即使它指向同一页面,它也会停止工作。在重新加载之前,我曾尝试向webview添加另一个接口对象,但似乎也没有任何作用。

目前,我正在销毁当前的网页视图,并在每次需要重新加载或收到另一个推送消息时创建一个新的网页视图。

对此有任何修复或解决方法吗?我希望能够使用一个网页视图的一切,而不是担心,如果它被重新加载或没有。

EN

回答 2

Stack Overflow用户

发布于 2014-11-13 22:41:49

在原始的EasyJSWebView存储库中有一个错误。

只需使用此处的分支:https://github.com/andiradulescu/EasyJSWebView

票数 3
EN

Stack Overflow用户

发布于 2014-08-22 17:13:13

我不确定这是否是解决问题的最好方法,但它在我的项目中有效。我的方法是在每次重载或重定向请求之前创建一个新的UIWebView。以下是详细信息:

代码语言:javascript
复制
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { 
//'isNotFirstLoad' marks if it is the fisrt load.
if (isNotFirstLoad) {
    //create an new webview
    CGRect frame = _myWebView.frame;
    [_myWebView removeFromSuperview];
    _myWebView = [[EasyJSWebView alloc] initWithFrame:frame];       
    [self.view addSubview:_myWebView];
    //init the new webview
    _webView.delegate = self;
    javaScriptInterface* interface = [javaScriptInterface new];

    [self.webView addJavascriptInterfaces:interface WithName:@"interface"];
    [_myWebView loadRequest:request]; 
    //reset the firstload flag to load the new request             
    isNotFirstLoad = NO;
    return NO;
}
isNotFirstLoad = YES;

return YES;

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22714373

复制
相关文章

相似问题

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