JSPatch icon indicating copy to clipboard operation
JSPatch copied to clipboard

jspatch 动态创建UiWebView 会不时的crash

Open ruanjunhao opened this issue 9 years ago • 7 comments

bang哥 你好 我使用jspatch 更新app里面的一个方法 这个方法就是创建UIwebView的代码 类似这样的_webView = [[UIWebView alloc] initWithFrame:webRect]; 还更新了一个 js和OC桥接的代码 使用git上的 WebViewJavascriptBridge 框架 替换了这2个方法实现 但是运行起来 时不时的crash Application received signal SIGSEGV (null) 解析出来 就是jspatch里面的一个地方报错 我也查了下 网上说 jspatch和 UiwebView 一起使用会有crash 有什么好的解决办法避免嘛 我的sdk 也是最近一个月内才下载的 拜托了bang哥

ruanjunhao avatar Oct 08 '16 13:10 ruanjunhao

创建webview的相关方法都有performSelectorInOC调用试试 https://github.com/bang590/JSPatch/wiki/performSelectorInOC-%E4%BD%BF%E7%94%A8%E6%96%87%E6%A1%A3

bang590 avatar Oct 09 '16 12:10 bang590

hi, bang.

和 @ruanjunhao 一样的问题,不过我这里不是在 js 中创建 webview,相对的,我的原始方法addWebView中有创建 UIWebView,现在我需要在原始方法后追加一些操作,那么在 hotfix.js 中,我这样写

self.ORIGaddWebView();
// do other fix things.
// ...

也会出现 crash。调用堆栈如下: x

这样的话,有什么解决思路吗?

c98 avatar Oct 27 '16 09:10 c98

知道为什么 jspatch 动态创建UiWebView 会crash 吗

xiang2743 avatar Dec 20 '16 03:12 xiang2743

@xiang2743 会不会是内存问题,UIWebView的执行会非常耗内存,如果你创建出来的UIWebView加载了一个元素比较多的页面,有可能是因为内存不够而崩溃的。

sh0rt2020 avatar Dec 20 '16 03:12 sh0rt2020

webview里的JavaScriptCore引擎跟JSPatch执行的JavaScriptCore冲突

bang590 avatar Dec 20 '16 11:12 bang590

恩,多谢邦哥的回复。我了解到,可能是JSContext冲突,但更深层点的原因,能否指导下。 现在用performSelectorInOC 接口解决了问题,但知其然不知其所以然,多谢

xiang2743 avatar Dec 21 '16 03:12 xiang2743

@sunwell 打开百度 或者一个简单的页面,会有同样的问题

xiang2743 avatar Dec 23 '16 02:12 xiang2743