Внедрить Javascript в Webview — Swift

Как я могу внедрить javascript в веб-просмотр (IOS/Swift) после загрузки пользовательского html.

@IBOutlet weak var webView: UIWebView!

var html = "<div id='test'></div>"

self.webview.loadHTMLString(html, baseURL: nil)

Я хочу внедрить следующий javascript в веб-просмотр после того, как загружу свой собственный html.

var myelement = document.getElementById("test");
myelement.innerHTML= "New Text";

person user2423476    schedule 02.02.2017    source источник
comment
оцените JavaScript, погуглите, трудно найти проще   -  person Lu_    schedule 02.02.2017
comment
Возможный дубликат Вставка кода JavaScript в Webview iOS   -  person Ahmad F    schedule 02.02.2017


Ответы (2)


Просто сделать:

let js = "var myelement = document.getElementById(\"test\");myelement.innerHTML= \"New Text\";"
webView.evaluateJavaScript(js, completionHandler: nil)

Если вы используете UIWebView вместо WKWebView, сделайте следующее:

let js = "var myelement = document.getElementById(\"test\");myelement.innerHTML= \"New Text\";"
_ = webView.stringByEvaluatingJavaScript(from: js)
person Sweeper    schedule 02.02.2017

используйте WKWebview и используйте WKNavigationDelegate делегата

func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
        let str = "setData(\"\(uid)\",\"\(DataProvider.sharedInstance.baseUrl)\")"
        self.webView.evaluateJavaScript(str) { (id, error) in
            print(error)
        }
    }
person IOS Singh    schedule 02.02.2017
comment
Он все еще там, просто Swift 4-ized/модульный; попробуйте эту подпись: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!). (Внедрение JS здесь делает работу за меня - спасибо!) - person user3773048; 01.12.2018