本文介绍的是在 初始化 webView 就 注入 js 文件 ,然后再 加载每个地址的时候 都能调用这个JS文件里的方法
准备 Abc.js 放到跟目录
if (!this.__testjs__) { __testjs__ = {}; } __testjs__.Class1 = { hideLogo: function (str) { //logo 将消失 var element = document.getElementById("logo") element.innerHTML = str return document.title }, };
目录位置
然后是swift 文件
override func viewDidLoad() { super.viewDidLoad() let webView = WKWebView(frame: CGRect(x: 0, y: 50, width: screenWidth, height: screenHeight-50)) //初始化WebView 时将JS注入webView if let path = Bundle.main.path(forResource: "Abc", ofType: "js") { let source = NSString(data: NSData(contentsOfFile: path) as! Data, encoding: UInt(String.Encoding.utf8.hashValue)); let userScript = WKUserScript(source: source as! String, injectionTime: WKUserScriptInjectionTime.atDocumentStart, forMainFrameOnly: false) webView.configuration.userContentController.addUserScript(userScript) } self.view.addSubview(webView) let url:String = "http://m.baidu.com" webView.load(NSURLRequest(url: NSURL(string: url) as! URL) as URLRequest); // 3.5 秒后执行 JS 代码 ,一般情况都是 在webView 加载完成后才执行 DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 3.5){ webView.evaluateJavaScript("__testjs__.Class1.hideLogo('sddd')") { (response, error) in if error != nil { print(" error: ") } else { print(response as! String) } } } }
效果就是 打开m.baidu.com 后一会, logo 消失 并显示 sdd
相关推荐
针对WKWebView进行的封装、支持和H5交互、包括调用js方法等。挺全面的!真的。其他针对WKWebView封装的就不要看了。
WKWebView管理cookie是很麻烦事,经常出现 App自定义cookie的值丢失 或 更新不及时 的情况。 通过长期踩坑,总结出WKWebview管理cookie的一种方案。
WHC_Model iOS平台高效转换引擎json->model,model->json,model->Dictionary,支持模型类继承其他模型类,支持指定路径转换,不区分json的key和模型属性名称大小写,自动处理json中null。
基于WKWebView控件上跨平台框架,相对于UIWebView控件跨平台占用内存少,体验好,且完美解决登录Cookies同步共享
使用WKWebView的一个带下载的web浏览界面
Yahoo开源的在线obj-c -> swift工具
NULL 博文链接:https://mft.iteye.com/blog/2310507
NULL 博文链接:https://mft.iteye.com/blog/2343765
NULL 博文链接:https://mft.iteye.com/blog/2304029
NULL 博文链接:https://mft.iteye.com/blog/2428573
Swift-WKWebView(本地数据) 源码
NULL 博文链接:https://mft.iteye.com/blog/2296790
NULL 博文链接:https://mft.iteye.com/blog/2310323
NULL 博文链接:https://mft.iteye.com/blog/2313269
NULL 博文链接:https://mft.iteye.com/blog/2296699
NULL 博文链接:https://mft.iteye.com/blog/2297851
Swift-WKWebView(网络连接) 源码
NULL 博文链接:https://mft.iteye.com/blog/2343587
Encapsulate the WKWebView and quickly browse the web(WKWebView封装,快速浏览网页)