1. 程式人生 > >WebBrowser控制元件中JS與原生互動

WebBrowser控制元件中JS與原生互動

在wp8中,可以通過監聽WebBrowser控制元件的ScriptNotify方法,來獲取JS對原生的呼叫。當然JS必須呼叫特定的方法:window.external.notify.

然後可以通過呼叫Webbrowser的InvokeScript方法回撥JS,這樣即實現了雙方的通訊。

需要注意的細節:

JS調原生只能呼叫唯一的一個介面。所以需要把呼叫企圖作為引數傳遞給原生,一般可以通過一個json結構傳遞。

原生調JS可以指定方法名和引數。但這個方法必須是全域性方法,不能是物件方法。比如某個全域性JS物件Fuck的方法You,不能通過傳遞“Fuck.You"作為呼叫方法名來呼叫。如果這樣呼叫,會丟擲一個80020006錯誤,這意味著系統找不到對應的JS方法。這點跟Android是有區別的。

總結:不同的移動平臺總是喜歡自己實現一套跟web互動的邏輯。這樣的話,後端為了某個頁面能同時適應不同平臺,又要在頁面中進行一系列的平臺判斷。