WKScriptMessageHandler是因为我们要处理JS调用OC方法的请求。
WKScriptMessage有两个关键属性name 和 body。
因为我们给每一个OC 方法取了一个name,那么我们就可以根据name 来区分执行不同的方法。body 中存着JS 要给OC 传的参数。
ocAddAction方法在js文件中并没有定义
实现WKNavigationDelegate协议方法,执行之后会在WKScriptMessageHandler代理方法中拦截到 ocZRAction
动态修改alert系统函数的实现,当js中调用alert函数时,触发的是我们自定义方法
URL Scheme拦截的问题,这里不做赘述,请看 demo
JS注入详情
参考链接:
链接一
链接二
JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量、页面标签的内容。使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上完成的。命令的语法如下:
javascript:alert(#command#)
首先你要确认你的是js码,只有js代码才能被调用。将写好的js代码复制到txt文件中,另存为.js文件,保存在你的网站目录下。我保存在桌面上。(注在网页上调用一定要保存在网页上)保存好了之后,我的桌面就有一个新建.js的介绍文件,现在看看效果吧。随便新建一个网页,在<body></body>(注我演示的没有body,是最简单的网页)之间插入<script language="javascript" src="js文件地址"></script>,我的是放在桌面上的,所以地址是下面的这个保存为html文件之后,打开来看看效果吧。如上图所示,在网页的源文件里面,显示的不是<input type=button name="Submit1" value="郭强" size=10 class=s02style="background-color:rgb(235,207,22)">而是这段代码转换成js后js文件所在的位置。