Swift 使用WKWebView 實現Swift 與JS 互動
阿新 • • 發佈:2019-01-04
功能一:刪除京東手機版https://m.jd.com/右上角的登陸按鈕 程式碼如下
import UIKit import WebKit class ViewController2: UIViewController,WKNavigationDelegate { @IBOutlet weak var weView: WKWebView! override func viewDidLoad() { super.viewDidLoad() let webUrl = "https://m.jd.com/" let request = URLRequest.init(url: URL.init(string: webUrl)!) self.weView.navigationDelegate = self self.weView.load(request) } func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { webView.evaluateJavaScript("document.getElementById('msShortcutLogin').children[0].remove();") { (nil , error) in } } func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { print("error%@",error) } }
二,修改“京東超市”對應的圖片
js 程式碼如下:
//代理方法替換如下: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { webView.evaluateJavaScript("document.getElementsByClassName('box_list position-ab')[0].children[0].children[0].src = '//m.360buyimg.com/mobilecms/s120x120_jfs/t1/8420/25/9039/4154/5c120d5bE781c8f4d/6375980b13835c7c.png.webp';") { (nil , error) in } }
修改“京東生鮮”的標題為“生鮮京東”
js 程式碼如下:
//代理方法替換如下 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) { webView.evaluateJavaScript("document.getElementsByClassName('box_list position-ab')[0].children[3].children[1].innerText='生鮮京東';") { (nil , error) in } }