phonegap js 和 本地代碼 調用原理

iOS:通過讓本地代碼攔截JavaScript中調用的window.location=”gap://Class.method/args”命令,來實現從JavaScript到本地代碼之間的通信。在本地代碼攔截該命令後,解析獲取的參數,然後調用對應的類、方法並傳遞參數。對應的,使用UIWebView.stringByEvaluatingJavaScriptFromString來實現本地代碼調用JavaScript。

Android:通過攔截JavaScript的prompt命令實現從JavaScript到本地代碼的通信。JavaScript prompt命令默認會彈出對話框,而PhoneGap的Android本地代碼會攔截該對話框,並進一步取得JavaScript數據。相應的,Android上的PhoneGap內部,使用Java實現了一個HTTP服務器,通過持久性的XHR連接,JavaScript可以不斷輪詢內部XHR服務器存儲的信息,從而實現了從Java到JavaScript方向的通信。

BlackBerry 4.x:JavaScript與本地代碼之間的唯一通信方式是通過document.cookie實現的。JavaScript設定Cookie,本地代碼從Cookie中獲取信息。對應的,本地代碼也可以設定Cookie,允許JavaScript從Cookie中獲取本地代碼信息。

BlackBerry WebWorks:新的BlackBerry WebWorks SDK更好地支持了Java與JavaScript之間的交互通信。通過ScriptEngine.addExtension,Java對象可以被暴露給JavaScript,而對應的Java可以使用ScriptEngine.executeScript來調用JavaScript。

Windows Phone 7:在Windows Phone 7中,JavaScript通過window.external.Notify可以將信息發送給本地代碼。而相應的,WebBrowser.InvokeScript允許本地代碼調用JavaScript。

 

 

發佈了5 篇原創文章 · 獲贊 5 · 訪問量 25萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章