Cordova with Angular,如何获取deviceready事件

时间:2015-09-19 06:03:51

标签: javascript angularjs cordova

我遇到了设备就绪事件的各种问题,从deviceready has not fired after 5 seconds错误到没有插件工作。

根据我的研究理解,以下是必需的(如果我错了请纠正我):

  • angular必须在deviceready事件之前加载,否则它不会被提取
  • cordova.js必须在不到5秒的时间内加载

所以我的问题是 - 如何让cordova.js尽快加载,同时等待角度为deviceready事件做好准备?

4 个答案:

答案 0 :(得分:2)

我使用手动引导来使其正常工作(完美)

function bootstrapAngular() {
    var domElement = document.querySelector('html');
    angular.bootstrap(domElement, ['appName']);
}
if (document.URL.indexOf('http://') === -1 && document.URL.indexOf('https://') === -1) {
    // URL: Running in Cordova/PhoneGap
    document.addEventListener("deviceready", bootstrapAngular, false);

if因为我的应用程序可以通过浏览器访问(" http://"或" https://")和cordova("文件:/ /"。)

答案 1 :(得分:0)

加载角度后加载cordova.js,并且错误'设备在5秒后没有被触发'你将只面对桌面浏览器,而当你尝试使用实际的设备或模拟器时,事件将会触发。

答案 2 :(得分:0)

您可以使用Corvoda Mocks在Chrome上模拟设备的状态,以测试您的应用。

答案 3 :(得分:0)

您需要在Cordova之前加载AngularJ。

如果你愿意,这里有一个工作种子:   https://github.com/marioaleogolsat/cordova-angular-angularMaterial-seed

请记住,某些插件无法在仿真中使用,因此请使用cordova run --device以确保所有内容都能正常运行。