Cordova -从远程HTML访问设备功能
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获得的内容,并把内容在一个div容器在index.html
页,基础的Cordova应用程序?
如果重要的话,这些都在iOS上。我只包括dialogs
和vibration
插件。我正在接收Cordova应用程序中的deviceready
事件,并成功重定向到远程站点。如果还有其他需要我考虑的因素,请告诉我。谢谢。
更新1:我通过使用导航器从Cordova应用程序的本地index.html中获得振动。振动而不是navigator.notification.振动。在远程站点上更改这一点没有帮助。我还尝试从远程页面包含振动.js, Cordova.js和cordova_plugins.js的副本-仍然没有运气。
UPDATE 2:我在Cordova文档中发现了我所询问的内容:从远程加载的HTML页面(未存储在设备本地的HTML页面)调用Cordova JavaScript函数是不支持的配置。这是因为Cordova不是为此而设计的,而且Apache Cordova社区没有对这种配置进行测试。虽然它可以在某些情况下工作,但不建议也不支持。同源策略的挑战包括保持JavaScript和Cordova的本地部分在同一版本同步(因为它们是通过私有api耦合的,而私有api可能会改变),远程内容调用本地函数的可信度,以及潜在的应用商店拒绝。
在webview中显示远程加载的HTML内容应该使用Cordova的InAppBrowser。由于上述原因,InAppBrowser的设计使运行在那里的JavaScript无法访问Cordova JavaScript api。请参阅保安指引
基于此,这听起来是可能的,但就像我们自己出去了。尽管如此,如果有人成功地做到了这一点,我们还是想试一试。
我认为你正在寻找的是一个推送通知。有一个插件。http://ngcordova.com/docs/plugins/pushNotifications/你需要在你的应用上运行一个任务。
希望这是有帮助的。
- javascript函数访问ios本机功能
- 为什么可以't我访问Chrome内置功能$
- 可以't访问Angular.js服务中的功能
- 访问内部功能范围的元素,而不是敲除中的外部
- 在接受功能上访问燃料UX标语牌中的“this”
- 控制器切换后匿名功能中的访问服务数据发生变化
- 使用Flash CC和Createjs的子访问功能
- 通过访问DOM添加功能
- 模态无法访问其显示功能
- JqueryUI访问修改拖拽功能
- 当某些用户已经访问某个页面时,阻止访问或禁用该页面中的某些功能
- 访问谷歌地图事件中的Backbone.View功能
- 如何在车把模板中访问功能
- 如何在右键单击链接并从上下文菜单访问功能后获取链接的 DOM
- 访问功能内的成员/从外部设置成员
- 咖啡脚本访问功能
- 如何通过按钮从express.js访问功能到客户端
- 不一致的“与”行为-没有访问功能-这是一个chrome的错误
- 在动态添加的javascript文件中提供访问功能
- 如何访问功能