本文介绍: 1. js调用iOSjs调用:window.webkit.messageHandlers.jsToIOS.postMessage(“这是js传递到ios的数据“);iOS接收:// jsToIOS 是JavaScript向IOS发送数据时,使用的函数名 self.wkWebView?.configuration.userContentController.add(self, name: “jsToIOS”)func userContentController(_ userCon
下面的方法都是本人亲测有效
1. js调用iOS
js调用:
下面的代码只有写在,iOS中WKWebView加载的H5界面中才有效,单独写在h5界面中会报下面的错误:
TypeError: undefined is not an object(evaluating ‘window.webkit.messageHandlers’)
window.webkit.messageHandlers.jsToIOS.postMessage("这是js传递到ios的数据");
iOS接收:
// jsToIOS 是JavaScript向IOS发送数据时,使用的函数名
self.wkWebView?.configuration.userContentController.add(self, name: "jsToIOS")
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("JS发送到IOS的数据====(message.body), name=(message.name)")
}
2.iOS调用js
iOS调用js
// 重点:IOS 调用 JavaScript 的 navButtonAction 方法,并传递参数
// 使用匿名回调函数接收方法返回值
self.wkWebView!.evaluateJavaScript("navButtonAction('test1',18)") {
(response, error) in
print("message: (response!)")
}
iOS向网页注入JS :
// ios 向网页注入 js,注入js分为在网页加载完毕注入(.atDocumentStart)和加载之前注入(.atDocumentEnd)
let js = "document.getElementsByTagName('h2')[0].innerText='我是ios原生为h5注入的方法'"
let script = WKUserScript.init(source: js, injectionTime: .atDocumentEnd, forMainFrameOnly: true)
wkWebView!.configuration.userContentController.addUserScript(script)
3.参考博客:
IOS-SwiftUI-IOS原生与JavaScript交互的应用 – 知乎
4.我的另外一篇相关博客:
iOS swift5 webView: WKWebView 简单使用 加载html
原文地址:https://blog.csdn.net/baidu_40537062/article/details/123406139
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_48752.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。