2016-06-30 6 views
1

Ich habe WKWebView hinzugefügt, um per Code in meiner Klasse zu sehen, die UIViewController Klasse erweitert, kann ich JS Funktion von iOS Storyboard-Schaltflächen erfolgreich aufrufen.Aufruf addScriptMessageHandler nach dem Hinzufügen von WKWebView zur Ansicht

Allerdings möchte ich JS der Lage sein, Swift zu sagen, wenn eine ajaxpost Anfrage abgeschlossen ist ... Zum Glück fand ich diese Seite ... http://www.kinderas.com/technology/2014/6/15/wkwebview-and-javascript-in-ios-8-using-swift

var contentController = WKUserContentController() 
contentController.addScriptMessageHandler(
    self, 
    name: "callbackHandler" 
) 

var config = WKWebViewConfiguration() 
config.userContentController = contentController 

self.webView = WKWebView(
    frame: self.containerView.bounds, 
    configuration: config 
) 

hier ... ich sein will kann Skript-Handler hinzufügen, nachdem zu view hinzugefügt wurde.

Ist es möglich, addScriptMessageHandler() aufzurufen, nachdem die Webansicht bereits zur Ansicht hinzugefügt wurde?

Antwort

2

Ja, und es ist wirklich zu einfach:

let contentController = self.webView.configuration.userContentController 
contentController.addScriptMessageHandler(self, name: "callbackHandler2") 
+0

Hmm ... Klingt vielversprechend ... abgestimmt up ... Lemme Implementierung versuchen ... – shramee

+0

Hey! Es klappt! Vielen Dank! :-) – shramee

0

meine eigene Frage zu beantworten; P

Obwohl @ codedifferent Antwort arbeitet ein Genuss: D

Aber wir können es noch einfacher machen, indem dies zu tun ...

self.webView.configuration.userContentController.addScriptMessageHandler(
    self, 
    name: "callbackHandler" 
) 

oder kompaktere ...

self.webView.configuration.userContentController.addScriptMessageHandler(self,name: "callbackHandler") 

Dies ist, was ich verwendet, wirkt wie ein Zauber :)

Verwandte Themen