美文网首页
UIwebview返回crash的问题

UIwebview返回crash的问题

作者: revivefsd | 来源:发表于2018-01-30 12:02 被阅读11次
      最近在做项目的时候发现一个偶现的闪退,就是在反复去打开h5页面,再返回到原声页面的时候,如果反复操作,就会发生crash,而且无法定位问题,崩溃到main函数,很难查看原因。
       最后我想问题可能是,webview关闭之后,一些js和原生交互的异步的回调方法回来之后web已经不存在了,delegate也不存在,给已经释放的地址去发送消息,造成了crash。也可能是其他原因。
       我在返回到原生页面时候做了一些处理,现在已经解决了这个问题。
    

    代码如下:

    -(void)JDReleaseWebView
    {
       if (_webView && _webView.loading){
           [_webView stopLoading];
       }
       _webView.delegate=nil;
       _JDRelease = YES;
       
       NSURL *url = [NSURL URLWithString:@""];
       NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
       [_webView loadRequest:requestObj];
       _webView = nil;
       [self.navigationController popViewControllerAnimated:YES];
    }
    
    

    首先在web返回到原生页面的时候, [_webView stopLoading]; _webView.delegate=nil; 添加这两行,然后再让web去加载一个空的url,这样就基本清空了之前的url在执行的很多异步操作,不会去向一个已经释放的对象发送回调的消息。

    相关文章

      网友评论

          本文标题:UIwebview返回crash的问题

          本文链接:https://www.haomeiwen.com/subject/ezaqzxtx.html