Инжектирайте 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, потърсете това в Google, трудно е да бъдете по-лесни за намиране   -  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-лизиран/модуларен; опитайте този подпис: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!). (Инжектирането на JS тук върши работата за мен -- благодаря!) - person user3773048; 01.12.2018