Ionic:Impelement Diagnostic Plugin(没有ngCordova插件)

时间:2015-11-19 11:30:13

标签: cordova plugins ionic cordova-plugins

我想在我的Ionic项目中实现一个常见的cordova插件(目前不能通过ngCordova获得)。

我已经通过CLI安装了插件

cordova plugin add cordova.plugins.diagnostic

之后我把它注入我的模块:

var app = angular.module('app', ['ionic', 'ngCordova', 'ionic.contrib.ui.tinderCards', 'Diagnostic'])

然后我创建了一个工厂:

.factory('LocationSettings', ['$q', 'Diagnostic', function($q, Diagnostic) {
  return {
    getLocationSettings: function(options) {
      var q = $q.defer();
      Diagnostic.isLocationEnabled(function(result) {
        console.log("Location is " + (result ? "enabled" : "disabled"));
        q.resolve(result);
      }, function(err) {
        console.error("The following error occurred: "+err);
        q.reject(err);
      }, options);

      return q.promise;
    }
  }
}])

之后我想将用户重定向到位置设置,如果他禁用该应用的GPS权限。

.run(function ($ionicPlatform, $state, LocationSettings) {
    LocationSettings.getLocationSettings().then(function(result) {
      alert(result);
    }, function(err) {
      alert(err);
    });
}

我在我的真实设备(iPhone)上进行了测试,但它不起作用。实际上它不会抛出错误,我只是得到一个空白的白色屏幕。 我做错了什么?

1 个答案:

答案 0 :(得分:1)

从我在GitHub README中看到的,没有可用的Angular模块注入。

你需要安装插件(你做过)然后直接以“纯粹的javascript方式”使用它(没有Angular方式)。

它位于名称空间cordova.plugins.diagnostic