【问题标题】:How to Deviceready in right way in Ionic application?如何在 Ionic 应用程序中以正确的方式准备好设备?
【发布时间】:2014-12-04 17:47:01
【问题描述】:

我有基于 Cordova 和 Ionic 的移动应用程序。在应用程序启动后加载的默认页面上,需要使用 SQLLite 插件。

https://github.com/brodysoft/Cordova-SQLitePlugin

问题是视图包含

ng-init="setData()"

调用与 SQL Lite 插件一起使用的控制器方法。并且由于该方法在 deviceready 事件未初始化之前调用(插件只能在 deviceready 事件之后进行初始化)。

所以我尝试了这个解决方法:

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
    // for form inputs)
    if(window.cordova && window.cordova.plugins.Keyboard) {
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
      db = window.sqlitePlugin.openDatabase({name:"callplanner"});
    }

但这对我不起作用。

所以我尝试了第二种解决方案:

.factory('cordova', function () {
  return {
      test: function(){
          document.addEventListener("deviceready", this.ready, false);
      },
      ready: function(){
            alert("Ready");
            db = window.sqlitePlugin.openDatabase({name:"callplanner"});
      }

  }
})

在控制器初始化中我尝试过:

cordova.test();

但这不起作用(在 ng-init 之后触发 devicereadfy)。

后来我发现了这篇文章:

http://java.dzone.com/articles/ionic-and-cordovas-deviceready

但我不明白如何在应用程序准备好之前放置“启动画面”以及如何设置超时。

有人知道我该如何解决这个问题吗?

非常感谢您的任何建议或帮助。

【问题讨论】:

  • 没人知道怎么解决吗?

标签: javascript android angularjs cordova ionic-framework


【解决方案1】:

您需要反转这一点,首先处理cordova“deviceready”事件,然后启动angularjs应用程序。像这样:

  1. 先去掉html/body标签中的ng-app属性

  2. 在 devireready 之后启动 Angular 应用程序:

    <script>
      document.addEventListener('deviceready', function() { 
        angular.bootstrap(document, ['YourAppName']);
      }, false);
      var YourAppName = angular.module('YourAppName', []);
    </script>
    

类似问题:

【讨论】:

    【解决方案2】:

    我无法使其与@t4deu 解决方案一起使用,因为我的 ng-app 标记在正文中,所以我留下一些更改以防它对某人有所帮助。

      <script>
        document.addEventListener('deviceready', function() {
          angular.bootstrap(document.querySelector('body'), ['starter']);
        }, false);
    
      </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 2011-10-20
      相关资源
      最近更新 更多