簡體   English   中英

Cordova-通過遠程HTML訪問設備功能

[英]Cordova - Access device functionality from remote HTML

我有一個Cordova應用程序,它等待deviceready事件,並在該事件觸發時,將window.location.href設置為遠程站點,例如http://foo.bar.com/lander.html 在該頁面上,我有多個指向其他頁面的鏈接-例如page1.htmlpage2.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上。 我僅包括dialogsvibration插件。 我在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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM