关于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 的建议?

关于JavaScript中的confirm()函数

关于Java&JavaScript中(伪)Stream式API对比的一些笔记

Javascript-关于nullundefined空字符串的区分