在Ionic中添加Cordova诊断插件?

3

我是ionic的新手,想在我的ionic项目中使用Cordova Diagnostic插件。我不知道如何在ionic中使用插件。我使用了以下命令添加此插件。

 $ cordova plugin add cordova.plugins.diagnostic

我可以在列表中看到这个插件,使用

 $ cordova plugins ls

现在我有一个单独的控制器文件,我在这里发布它的代码,当我尝试使用它时,它会出现错误,提示“cordova is”

 angular.module('timetools_controllers', ['ui.utils', 'ionic','cordovaGeolocationModule'])

.controller('TimetoolsCtrl', ['$scope', '$http', '$localstorage', '$ionicPopup', function ($scope, $http, $localstorage, $ionicPopup) {

    /*=================================================================================*/
    // ABFRAGE OB TRACK & SHARE AKTIV IST
    /*=================================================================================*/
    var fdappAuth = $localstorage.getObject('fdappAuth');

    $http({
        method: 'GET',
        url: 'http://app.flugdeck.com/options.php?apikey=7ksmewzSUd2asSA0384cosb!2w3SloE&do=get&optid=110&userId=' + fdappAuth.fdappUserId + '&userPwHash=' + fdappAuth.fdappUserPw,
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'
        }
    })
        .success(function (data, status) {
            // Verarbeitet die Daten und setzt diese zur Anzeige in die scopes
            console.log("Optionsabfrage für Track & Share läuft");

            $scope.optentry = data[0];
            $scope.optentry.opt_110 = data[0].opt_110;

            if ($scope.optentry.opt_110 == 1) {
                $scope.isTrackShareActive = "Tracking ";
                $scope.cssClass = "Tracking";
            } else {
                $scope.isTrackShareActive = "Tracking ";
                $scope.cssClass = "Tracking";
            }
        });


    $scope.saveOffBlockTime = function () {
        var datum = new Date();
        console.log("Datums-String: " + datum);

        // Erstelle das Datum und Poste das
        if ($scope.OffBlockRunAlready === true) {

        } else {
            // Setzt das Datum
            $scope.OffBlockTime = datum;


            $scope.OffBlockRunAlready = true;

            if ($scope.optentry.opt_110 == 1) {
                /***********************/
                // GPS TEST CODE CORDOVA
                /***********************/
                alert("GPS TEST");
                 cordova.plugins.diagnostic.isLocationEnabled(function(enabled){
                    console.log("Location is " + (enabled ? "enabled" : "disabled"));
                }, function(error){
                    console.error("The following error occurred: "+error);
                });



            }

        }
    }; // saveOffBlockTime








}]) ;// Ende .controller('TimetoolsCtrl'...

但是在控制台中会出现以下错误。
 ReferenceError: cordova is not defined

请问有人可以帮助我吗?

我的Index.html文件

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>

<!-- build:css dist_css/styles.css -->
<link href="css/ionic.app.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
<!-- endbuild -->

<script src="http://maps.google.com/maps/api/js"></script>
<!-- build:js dist_js/modules.js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="lib/underscore/underscore-min.js"></script>
<script src="lib/ngmap/build/scripts/ng-map.min.js"></script>
<script src="lib/moment/min/moment.min.js"></script>
<script src="lib/angular-moment/angular-moment.min.js"></script>
<script src="lib/angular-md5/angular-md5.min.js"></script>
<script src="lib/angular-base64/angular-base64.min.js"></script>
<script src="lib/angular-cordova-geolocation/cordovaGeolocationModule.js">      </script>
<script src="lib/ngCordova/dist/ng-cordova.min.js"></script>
<!-- endbuild -->
<!-- cordova script (this will be a 404 during development) -->
<script src="cordova.js"></script>

<!-- build:js dist_js/app.js -->
<script src="dist/dist_js/app/app.js"></script>
<script src="dist/dist_js/app/directives.js"></script>
<script src="dist/dist_js/app/controllers.js"></script>
<script src="dist/dist_js/app/templates.js"></script>
<script src="dist/dist_js/app/services.js"></script>
<script src="dist/dist_js/app/config.js"></script>
<script src="dist/dist_js/app/filters.js"></script>
<script src="js/mymodules.js"></script>
<script src="lib/ui-utils.min.js"></script>
<script src="js/controller_flightlog.js"></script>
<script src="js/controller_timetools.js"></script>
<script src="js/controller_infotools.js"></script>
<script src="dist/dist_js/app/factories.js"></script>
<!-- endbuild -->
</head>

<body ng-app="your_app_name">
<ion-nav-view></ion-nav-view>
</body>
</html>

请问您能否添加您的index.html文件?您正在哪个环境中进行测试?(浏览器、模拟器、手机) - MHX
我正在浏览器上测试,并且我已经在@mhx发布了我的index.html。 - Nadeem Yousaf
2个回答

5
这个插件的Github页面上写道:

这个Cordova/Phonegap插件适用于检查以下设备设置的状态。

该插件专门用于报告AndroidiOS平台上本机设备设置的状态。
因此,它不支持浏览器平台,在其上运行会导致出现错误。

4
通过$ ionic serve在浏览器中测试ngCordova插件时,需要注意的一点是经常会出现cordova is not defined的错误。
大多数ngCordova插件在Web浏览器中无法工作,因为它们使用本地设备代码。
您可以尝试模拟您的应用程序并检查它是否有效。(您可能想要将console.log()更改为其他内容,以便您可以在模拟器中查看它是否有效。例如,打印一个$scope。)
示例:$ ionic emulate ios$ ionic emulate android

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接