Проблема с использованием кода javascript в моем приложении swift

#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.