iOS webView界面重定向js对象失效解决方案

在遇到WebView重定向导致注入的JS对象失效问题时,通过引入开源项目解决了循环引用的问题,但发现项目使用了私有API。最终通过在`webViewDidFinishLoad`方法中重新注入JS来解决问题,同时需要防止在有iframe的情况下重复注入。
摘要由CSDN通过智能技术生成

问题: UIWebview重定向后,JSContext注入的模型丢失问题
现象:JS无法调起原生

我遇到这个问题之后,也是谷歌百度了很久很久。

github 找到一个开源项目
UIWebViewTS_JavaScriptContet
拉下来之后,只需要这样就解决问题了
解决方法
然后,发现有循环引用?
行,那这样好了,注入模型
这里写图片描述

ok,现在来简单分析一下是如何解决这个问题的。

其中,最关键的是一个回调方法didCreateJavaScriptContext
作者通过 runtime 机制,巧妙地在 JavaScriptContext 创建之后,生成回调。然后在回调中我们注入 mode,使其生效。重定向之后,重新生成context后再次回调这个方法,重新注入 mode,重新生效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值