#swift #swift3 #webkit
#swift #swift3 #webkit
Вопрос:
В настоящее время я пытаюсь внедрить код javascript в свое приложение swift с помощью WKWebView
, используя это js
в ярлыках и запуская его с safari works.
Как этот скрипт может быть реализован для работы в моем webview
?
override func viewDidLoad() {
super.viewDidLoad()
//self.navigationItem.hidesBackButton = false
self.navigationItem.setHidesBackButton(false, animated:true)
let script = """
LONG SCRIPT HERE
"""
let userScript = WKUserScript(source: script, injectionTime: .atDocumentStart, forMainFrameOnly: true)
let contentController = WKUserContentController()
contentController.addUserScript(userScript)
let webViewConfiguration = WKWebViewConfiguration()
webViewConfiguration.userContentController = contentController
let viewContainer = WKWebView(frame: CGRect(x:0, y:0, width: UIScreen.main.bounds.width, height:UIScreen.main.bounds.height), configuration: webViewConfiguration)
let startURL = URL(string: "MY URL")
let myURLRequest:URLRequest = URLRequest(url: startURL!)
viewContainer.load(myURLRequest)
self.view.addSubview(viewContainer)
viewContainer.navigationDelegate = self
}
Комментарии:
1. Добавьте WKNavigationDelegate этот делегат, а также используйте метод WebView.evaluateJavaScript.
Ответ №1:
Вы можете использовать так называемый evaluateJavaScript()
in WkWebView
, а затем прочитать результат в Swift-коде.
Вот краткий пример:
webView.evaluateJavaScript("document.getElementById('someElement').innerText") { (result, error) in
if error != nil {
print(result)
}
}
Комментарии:
1. да, но мой js — это не 1 строка, а всего 200 , так как же ваш код мог бы мне помочь?
2. Попробуйте обернуть свой код javascript в строку, а затем передать его в функцию evauluateJavascript.