关于导入
JavaScriptCore 这个就不说了
js交互我们首先用到webView与webView的代理
基本上是很简单,,不过后台10分的坑
以下是代码
在webView的加载完成里面
func webViewDidFinishLoad(webView: UIWebView){
print("webViewDidFinishLoad")
//"documentView.webView.mainFrame.javaScriptContext" 这个key是固定不变的
let jscontext = self.webView!.valueForKeyPath("documentView.webView.mainFrame.javaScriptContext") as! JSContext
// back 这个是需要传入后台的方法
let back: @objc_block String ->Void = {_ in
self.back()
// 需要执行的代码就在这里写
}
// unsafeBitCast(back, AnyObject.self) 这个呢,,就是上面的back的名字 "back"这个key必须要与后台一致
jscontext.setObject(unsafeBitCast(back, AnyObject.self), forKeyedSubscript: "back")
}
在webView的开始加载里面做的话,,,我粗略试过 会调用两次back
func back(){
self.navigationController?.popViewControllerAnimated(true)
}
转载于:https://www.cnblogs.com/LusYoHo/p/5498836.html