[英]Cordova - Access device functionality from remote HTML
我有一個Cordova應用程序,它等待deviceready
事件,並在該事件觸發時,將window.location.href
設置為遠程站點,例如http://foo.bar.com/lander.html
。 在該頁面上,我有多個指向其他頁面的鏈接-例如page1.html
和page2.html
。 我想在page1.html
中放置一個按鈕,該按鈕調用Cordova的navigator.notification.vibrate
函數。
我已經完成上述設置,並且一切正常,但單擊page1.html
的按鈕以嘗試使設備振動時, navigation.notification
未定義。 我已經將cordova.js
復制到foo.bar.com
並從page1.html
引用它。 我是否必須在foo.bar.com
上包含其他JavaScript源文件? 這種方法行得通嗎?
如果我不是通過更改窗口位置而是通過AJAX獲取內容並將內容放入Cordova應用程序所在的index.html
頁的div容器中,是否可以工作?
如果重要的話,這些都在iOS上。 我僅包括dialogs
和vibration
插件。 我在Cordova應用程序中收到deviceready
事件,並成功重定向到了遠程站點。 請讓我知道是否還有其他需要考慮的因素。 謝謝。
更新1:通過使用navigator.vibrate而不是navigator.notification.vibrate,從Cordova應用程序的本地index.html獲得了振動。 在遠程站點上更改此設置無濟於事。 我還嘗試了從遠程頁面包含振動.js,Cordova.js和cordova_plugins.js的副本-仍然沒有運氣。
更新2:我發現在Cordova文檔中討論了我要問的問題:從遠程加載的HTML頁面(不在設備本地存儲的HTML頁面)調用Cordova JavaScript函數是不受支持的配置。 這是因為Cordova不是為此設計的,並且Apache Cordova社區未對此配置進行測試。 盡管它在某些情況下可以工作,但不建議也不支持。 相同的原始策略存在挑戰,要使JavaScript和Cordova的本機部分保持相同版本的同步(因為它們通過可能更改的專用API耦合),調用本機本地功能的遠程內容的可信度以及潛在的應用商店拒絕。
應使用Cordova的InAppBrowser在Web視圖中顯示遠程加載的HTML內容。 InAppBrowser的設計使得在上面運行的JavaScript不能訪問Cordova JavaScript API。 請參閱安全指南。
基於此,聽起來可能可行,但就像我們會獨自一人。 不過,如果有人成功完成此操作,我們還是想嘗試一下。
我thinhk您正在尋找的是推送通知。 有一個插件。 http://ngcordova.com/docs/plugins/pushNotifications/盡管您需要在應用程序上運行任務。
希望這對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.