我想在我的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)上进行了测试,但它不起作用。实际上它不会抛出错误,我只是得到一个空白的白色屏幕。 我做错了什么?
答案 0 :(得分:1)
从我在GitHub README中看到的,没有可用的Angular模块注入。
你需要安装插件(你做过)然后直接以“纯粹的javascript方式”使用它(没有Angular方式)。
它位于名称空间cordova.plugins.diagnostic
。