问题: UIWebview
重定向后,JSContext
注入的模型丢失问题
现象:JS
无法调起原生
我遇到这个问题之后,也是谷歌百度了很久很久。
github 找到一个开源项目
UIWebViewTS_JavaScriptContet
拉下来之后,只需要这样就解决问题了
然后,发现有循环引用?
行,那这样好了,注入模型
ok,现在来简单分析一下是如何解决这个问题的。
其中,最关键的是一个回调方法didCreateJavaScriptContext
作者通过 runtime 机制,巧妙地在 JavaScriptContext 创建之后,生成回调。然后在回调中我们注入 mode,使其生效。重定向之后,重新生成context后再次回调这个方法,重新注入 mode,重新生效。