2
我想在整個的JavaScript注入新的CSS規則排除某些網頁元素,如側邊欄,我創建在Xcode一個新的JavaScript文件與一個新的樣式標籤隱藏側邊欄我考察了谷歌Chrome瀏覽器開發工具,並使用此代碼結束:如何注入一個javascript在WKWebView斯威夫特卡倫特3
var styleTag = document.createElement("style");
styleTag.textContent = '.sidebar {display:none;}';
document.documentElement.appendChild(styleTag);
,創造WKWebViewConfiguration對象持有的一些屬性,允許本地代碼和託管Web內容描述here但仍然沒有之間的橋樑的創作讓這個腳本運行。
這是我的完整視圖控制器代碼:
import UIKit
import WebKit
class scrapedBrowser: UIViewController, WKNavigationDelegate {
var webView: WKWebView!
var progressView: UIProgressView!
override func loadView() {
webView = WKWebView()
webView.navigationDelegate = self
view = webView
}
required init?(coder aDecoder: NSCoder) {
let config = WKWebViewConfiguration()
let scriptURL = Bundle.main.path(forResource: "hideSections", ofType: "js")
let scriptContent:String?
do {
scriptContent = try String(contentsOfFile: scriptURL!, encoding: String.Encoding.utf8)
}
catch _ {
scriptContent = nil
}
let script = WKUserScript(source: scriptContent!, injectionTime: .atDocumentStart, forMainFrameOnly: true)
config.userContentController.addUserScript(script)
super.init(coder: aDecoder)
self.webView?.navigationDelegate = self
}
override func viewDidLoad() {
super.viewDidLoad()
let url = URL(string: "http://yourwebsite.com/")!
let request = URLRequest(url: url)
webView.load(request)
webView.allowsBackForwardNavigationGestures = true
}
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
title = webView.title
}
}
有一些JSContext的引用,應該有助於你的後。 https://developer.apple.com/reference/javascriptcore/jscontext並有一個迅速3線程[這裏](https://stackoverflow.com/a/40730365/4891259) –