swift 3.0 webview与JS的交互

本文介绍了使用Swift开发web App时,如何实现WebView与JavaScript的交互。通过导入JavaScriptCore框架,定义协议和方法,实现在JS中调用Swift本地方法,并在webViewDidFinishLoad中进行绑定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近接触了个web App项目,手痒就选择了swift来写,这里主要介绍一些swift中webview和js交互的事项

首先import JavaScriptCore

然后定义需要和JS交互的协议内容(JS需要调用的方法)

/*

@objc protocol (@objc必须添加)

goToClipboar(js调用的本地方法名称)

(urlStr : NSString)(js传过来的内容,格式不定)

*/

@objc protocol /协议名称根据喜好/ : JSExport{

func goToClipboard(urlStr : NSString)

}
这里写图片描述
上面是与js交互的方法,下面开始webview需要设置内容的介绍

首先遵守协议,实例化JSContext,实现协议方法
这里写图片描述
然后去webViewDidFinishLoad方法里面进行关联
这里写图片描述
到这里webview与JS交互内容就结束了。刚刚接触,还有很多不足,欢迎指导。下面完整代码

import JavaScriptCore

@objc protocol JSObjcDelegate : JSExport{

func goToClipboard(urlStr : NSString)//点击顶部返回按键

}

class webViewObj: UIWebView , UIWebViewDelegate , JSObjcDelegate{

var jsContext : JSContext?

func webViewDidFinishLoad(_ webView: UIWebView) {

jsContext = webView.value(forKeyPath:"documentView.webView.mainFrame.javaScriptContext") as! JSContext!

jsContext!.setObject(self, forKeyedSubscript: "myObj" as (NSCopying & NSObjectProtocol)!)

}

internal func goToClipboard(urlStr: NSString) {

print("goToClipboard")

}

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值