Я пытаюсь исключить некоторые элементы веб-страницы, такие как боковая панель, введя новое правило CSS в javascript, я создал новый файл javascript в xcode с новым тегом стиля, чтобы скрыть боковую панель что я осмотрел в Google инструмент разработчика Chrome и закончился с этим кодом:Как вставить javascript в WKWebView в Swift 3
var styleTag = document.createElement("style");
styleTag.textContent = '.sidebar {display:none;}';
document.documentElement.appendChild(styleTag);
и созданный объект WKWebViewConfiguration, который имеет некоторые свойства, которые позволяют создать мост между машинным кодом и размещенного веб-контента, как описано here, но до сих пор не запуск этого скрипта.
Это мой полный код ViewController:
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) –