OC与JS交互-WKWebView篇

OC与JS交互-WKWebView篇,第1张

oc 跟 js 端协议好方法名 比如 js 的方法为 Back()

1.oc 对 js 的方法进行监听

[config.userContentController addScriptMessageHandler:self name:@"Back"]

2.oc 设置代理并且导入代理 

<WKUIDelegate,WKNavigationDelegate,WKScriptMessageHandler>

self.webView.UIDelegate = self

self.webView.navigationDelegate = self

3.实现代理

- (void)userContentController:(WKUserContentController*)userContentController didReceiveScriptMessage:(WKScriptMessage*)message

4.离开页面的时候移除监听

[config.userContentController removeScriptMessageHandlerForName:@"Back"]

1.创建按钮 并且实现按钮的回调

<input type="button" value="返回按钮" onclick="backClick()" />

2.按钮的响应方法中添加发送消息到 OC (可以携带参数)

 functionbackClick() {window.webkit.messageHandlers.Back.postMessage('固定写的 js 值-->点击了返回')}

1.OC 添加对 JS 的消息监听,实现代理对监听的实现方法。

2.JS 端在合适的时机发送消息,并且可以携带参数。

js 跟 oc 端协议好方法名 比如 js 的方法为 transferPrama(str)

//oc 在合适的时机调用 js 方法(可以传参数)

NSString* paramString =@"我是 OC 调用 JS"

NSString* jsStr = [NSStringstringWithFormat:@"transferPrama('%@')",paramString]

 [self.webView evaluateJavaScript:jsStr completionHandler:^(id _Nullable result, NSError * _Nullable error) {NSLog(@"result=%@  error=%@",result, error)}]

//js需要定义一个对应的方法供 OC 调用

functiontransferPrama(str) {

document.getElementById("secondid").value = str

}

- (void)userContentController:(WKUserContentController*)userContentController didReceiveScriptMessage:(WKScriptMessage*)message

- (void)evaluateJavaScript:(NSString*)javaScriptString completionHandler:(void(^_Nullable)(_Nullableid,NSError*_Nullableerror))completionHandler

愤怒的牛牛的

愤怒的牛牛的新浪博客

愤怒的牛牛的GitHub

最近在使用支付宝的过程中发现当支付宝运行在手机后台,我们双击Home键切换app的时候,支付宝为了保护用户隐私会添加模糊效果。自己就模仿着实现了一下,先说一下我的实现思路:

获取到当前window的截屏图片并保存到沙盒,然后在下面这个方法里面将你创建的覆盖window上view显示出来

在app将药进入前台的时候将你创建覆盖在window上的view移除掉

图片高斯模糊效果的实现

屏幕截图的实现

保存沙盒的实现

读取沙盒截图的实现

demo的 传送门

如果对您有帮助,顺便给个✨吧!

可以说的更详细一些么 ??

如果是继承的话 子类中想用父类的方法这种的实现上一层功能 可以用 super ,super 的用法类似于self ,只不过self是实现调用自己的东西 , super是实现调用自己父类的东西。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11421780.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-16
下一篇2023-05-16

发表评论

登录后才能评论

评论列表(0条)

    保存