相关动态
WKWebView+JSPatch注入代码,实现H5与原生页面的灵活交互
2025-01-02 19:40

很多人的项目都会用到UIWebView或WKWebView,时常要让H5页面和原生页面交互。

WKWebView+JSPatch注入代码,实现H5与原生页面的灵活交互

常见的方法有url拦截(UIWebView,WKWebView都支持),最典型的应该是WebViewJavascriptBridge利用看不见的iframe来实现的方法。

还有就是通过JavascriptCore (UIWebView支持,WKWebView不支持)来实现。

我介绍的是一种很另类的方法,也没见过别人用过,但我试着用于生产中了,对线程和内存管理理解的好的话,这种方法会很灵活好用。

将WKWebView和JSPatch结合起来使用,从而向APP里注入代码。

这样做能让H5页面和原生页面的交互大大加强。

若要通过H5页面导入脚本,就得让WKWebView和原生层面能够交互。


关键的两句话是:


self必须得遵循【WKscriptMessageHandler】协议。
Loadscript和DoFunction就相当于消息处理者。然后会在JS脚本中被用到。

在H5中需要执行的JS代码是:


postMessage()里面的参数可以是:Number, String, Date, Array,
Dictionary, and null.和OC对应关系为:

JS OC Number NSNumber String NSString Date NSDate Array NSArray Dictionary NSDictionary null NSNull

下面是官方注释:


【WKscriptMessageHandler】协议的回调写法:


H5执行loadscript()后会执行


[JPEngine evaluatescript:script]会将脚本转换为原生代码,即把script中的方法在APP运行时注册。

H5执行doFunction后会执行:


很简单的实现了H5向原生注入代码。

1.注入的代码会曝光在浏览器中,最好使用aes加密,

可以使用我写的一个加密工具CryptoBuff.

2.是在子线程中执行的。

所以"- (void)userContentController:(WKUserContentController *)userContentController
didReceivescriptMessage:(WKscriptMessage *)message"是异步回调的。

    以上就是本篇文章【WKWebView+JSPatch注入代码,实现H5与原生页面的灵活交互】的全部内容了,欢迎阅览 ! 文章地址:http://sjzytwl.xhstdz.com/news/12887.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 物流园资讯移动站 http://sjzytwl.xhstdz.com/mobile/ , 查看更多   
最新文章
苹果手机怎么恢复备份?详细攻略为你整理好了!云备份怎么恢复到手机「苹果手机怎么恢复备份?详细攻略为你整理好了!」
随着智能手机和互联网的普及,手机中存储的个人信息、照片、视频、聊天记录等数据会变得越来越多。一旦手机丢失、损坏或系统出现
李亚鹏正式息影 投资50亿丽江当老板金立手机老板「李亚鹏正式息影 投资50亿丽江当老板」
  华西都市报4月28日讯 昨日,李亚鹏打造的“云南省文化产业试验园”项目北京签约“我每年只选一部戏来拍,这已经严格遵循了10
怎样采用比特币挖矿?手机挖矿「怎样采用比特币挖矿?」
好吧,废话不多说了,其实比特币 - Bitcoin 出现时间已经很久了,不过对于新手来说,还是需要讲解一下的。关于比特币。FORECE 在
定了!苹果 2022 秋季发布会定档,9月8日见iPhone 14 来了?苹果手机发布会「定了!苹果 2022 秋季发布会定档,9月8日见iPhone 14 来了?」
又是九月,丰收的季节,今年的苹果又该熟了.......正如此前传闻那样,今晚苹果正式向外界发送了邀请函,宣布将于当地时间 9月7日
苹果手机微信闪退怎么回事苹果手机闪退是什么原因「苹果手机微信闪退怎么回事」
  品牌型号:iPhone12  系统版本:IOS14  苹果手机如果出现微信闪退的状况,首先我们得寻找原因,接下来小编就带着你们来
ZArchiver手机解压缩工具chm文件手机怎么打开「ZArchiver手机解压缩工具」
ZArchiver是一款功能强大的解压缩工具APP,可用于解压文件或压缩文件,软件支持多种文件格式的压缩和解压缩,包括ZIP、RAR、7Z、
【原】一部手机最长能用几年?主要有三个因素,决定了手机的寿命什么手机寿命最长「【原】一部手机最长能用几年?主要有三个因素,决定了手机的寿命」
一部手机最长能用几年?主要取决于以下这几个重要因素,才能决定手机的使用寿命。在当今社会,智能手机已经成为我们生活中不可或
iQOO 3评测:旗舰机还能在哪提升?这部手机给了答案机械手机「iQOO 3评测:旗舰机还能在哪提升?这部手机给了答案」
  文/晓光 于泽 瑞豪 视频/贾乾 图/苏航  从去年成立至今,iQOO这品牌发布了不到十款产品,并成功在互联网渠道占据了自己的
2013-4-7发布华为模拟器eNSP月度更新版(V2.0)支持全系列AR路由器模拟华为手机模拟器「2013-4-7发布华为模拟器eNSP月度更新版(V2.0)支持全系列AR路由器模拟」
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.ne
ADB驱动源码深度解析,从原理探究到实践应用android手机驱动「ADB驱动源码深度解析,从原理探究到实践应用」
摘要:,,本文深入解析ADB(Android Debug Bridge)驱动源码,从原理到实践全面阐述。文章首先介绍了ADB的基本原理和主要功能,
相关文章