2016-01-28 21 views
9

In WKWebView possiamo chiamare ObjectiveC codice/Swift utilizzando gestori di messaggi WebKit webkit.messageHandlers.<handler>.pushMessage(message).Native -> comunicazione JS in WKWebView IFrame

E questo funziona per IFrame troppo.

C'è un modo per rispondere a questo chiamando nell'IFrame?

Attualmente l'API evaluateJavaScript: supporta la comunicazione solo per il frame principale.

+1

se evaluateJavaScript contiene solo il nome e gli argomenti della funzione JS, allora la l'idea semplice è usare un codice JS nel frame principale per il proxy in IFrame (s). –

risposta

2

Ecco una vera e propria buona biblioteca di un ponte Javascript (supporta UIWebview e WKWebview): https://github.com/marcuswestin/WebViewJavascriptBridge

Il ponte può essere utilizzato per nativo JS o JS alla comunicazione nativa. Hanno fatto un buon lavoro dovresti darci un'occhiata.

Sul lato web è necessario aggiungere codice JavaScript, in modo che il bridge sia presente sul lato HTML, il loro documento mostra un metodo setupWebViewJavascriptBridge da aggiungere (leggere la parte Usage del file Leggimi). Alla fine a voi wether si aggiunge questo codice direttamente nella pagina, oppure attraverso IOS utilizzando evaluateJavaScript

0

comunicazione sincrona tra due processi differenti è not possible