phonegap js 和 本地代碼 調用原理


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.xJavaScript與本地代碼之間的唯一通信方式是通過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。

 

來自:http://hi.baidu.com/zymsuper/item/6fea7d10598a479c98ce332a


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM