关于iOS10 JavaScript & UIWebview 界面
Posted
技术标签:
【中文标题】关于iOS10 JavaScript & UIWebview 界面【英文标题】:About iOS10 JavaScript & UIWebview interface 【发布时间】:2016-09-19 07:42:15 【问题描述】:今天早上突然发现我们的用户说app crashpoint after we have breakpoints found iphone的ios 10,注入的JSContext对象出现javascript&UIWebview接口问题,代理方法无法执行,直接crash到堆栈区,导致我不能修改就行了。
【问题讨论】:
有人遇到过这个问题吗?如果有人有解决方案,请回答我。 【参考方案1】:编辑:以下原始评论没有帮助。我在 UIWebView 中使用 window.webkit.messagehandlers 是一个不受支持的 hack(与 WKWebView 的 API 相匹配),所以这并不奇怪,据报道,附加 Safari 时的溢出崩溃不会发生在 Safari 10 上的其他开发人员身上(我还没更新)
-- 原评论--
在 iOS 10 上看到同样的错误,现在向 Apple 提交。问题 #1,向 window.webkit.messagehandlers 添加回调:这个对象现在只允许添加一个回调函数,它曾经允许多个,即 messagehandlers.doOneThing、messagehandlers.doAnother。
问题 #2,看到崩溃:首先是 WTF::CrashOnOverflow::overflowed() 上的 EXC_BREAKPOINT,然后是崩溃
* thread #10: tid = 0x81c29d, 0x0dfb3d1d JavaScriptCore`JSC::DFG::SpeculativeJIT::speculate(JSC::DFG::Node*, JSC::DFG::Edge) + 1197, name = 'WebThread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
* frame #0: 0x0dfb3d1d JavaScriptCore`JSC::DFG::SpeculativeJIT::speculate(JSC::DFG::Node*, JSC::DFG::Edge) + 1197
【讨论】:
我已经解决了这个问题。这是由于重新声明函数名引起的。我定义了两个同名但参数数量不同的函数,然后导致崩溃。以上是关于关于iOS10 JavaScript & UIWebview 界面的主要内容,如果未能解决你的问题,请参考以下文章
关于JavaScript,jQuery,css学习问题的记录
关于访问 HttpOnly Cookie & Secure cookie 的查询
关于使用 NAnt 创建和部署最小化 JavaScript 的建议?