cordova plugin hotspot module error angularjs

半城伤御伤魂 提交于 2019-12-11 06:07:39

问题


I have taken the sample project from the cordova-plugin-hotspot and tried building it into android application. But when I'm using that sample, I'm getting the module not defined error but I checked that the module has been defined in the html and in angular.module. So please someone help me to figure out what is the actual error. Below is that sample program.

index.html

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

    <link href="lib/ionic/css/ionic.css" rel="stylesheet">
    <link href="css/style.css" rel="stylesheet">

    <!-- IF using Sass (run gulp sass first), then uncomment below and remove the CSS includes above
    <link href="css/ionic.app.css" rel="stylesheet">
    -->

    <!-- ionic/angularjs js -->
    <script src="lib/ionic/js/ionic.bundle.js"></script>

    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>

    <!-- your app's js -->
    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
  </head>
  <body ng-app = "starter">
    <!--
      The nav bar that will be updated as we navigate between views.
    -->
    <ion-nav-bar class="bar-stable" ng-controller = "HotSpotCtrl">
      <ion-nav-back-button>
      </ion-nav-back-button>
    </ion-nav-bar>
    <ion-nav-view></ion-nav-view>
  </body>

app.js

function onDeviceReady() {
  // bootstrap app:
  angular.bootstrap(document, ['starter']);
}

if (window.cordova) {
    document.addEventListener('deviceready', onDeviceReady, false);
} else {
  onDeviceReady();
}

// angular.module is a global place for creating, registering and retrieving Angular modules
// 'starter' is the name of this angular module example (also set in a <body> attribute in index.html)
// the 2nd parameter is an array of 'requires'
// 'starter.services' is found in services.js
// 'starter.controllers' is found in controllers.js
angular.module('starter', ['ionic', 'starter.controllers'])

    .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 && window.cordova.plugins.Keyboard) {
                cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
                cordova.plugins.Keyboard.disableScroll(true);

            }
            if (window.StatusBar) {
                // org.apache.cordova.statusbar required
                StatusBar.styleDefault();
            }
        });
    })

    .constant('$ionicLoadingConfig', {
      template: '<ion-spinner></ion-spinner> <br> Loading '
    })

    .config(function ($stateProvider, $urlRouterProvider, $ionicConfigProvider) {

        // places them at the bottom for all OS
        $ionicConfigProvider.tabs.position('bottom');

        // Ionic uses AngularUI Router which uses the concept of states
        // Learn more here: https://github.com/angular-ui/ui-router
        // Set up the various states which the app can be in.
        // Each state's controller can be found in controllers.js
        $stateProvider

            // setup an abstract state for the tabs directive
            .state('tab', {
                url: '/tab',
                abstract: true,
                templateUrl: 'templates/tabs.html'
            })

            // Each tab has its own nav history stack:

            .state('tab.hotspot', {
                url: '/hotspot',
                views: {
                    'tab-hotspot': {
                        templateUrl: 'templates/tab-hotspot.html',
                        controller: 'HotSpotCtrl'
                    }
                }
            })

            .state('tab.devices', {
                url: '/devices',
                views: {
                    'tab-devices': {
                        templateUrl: 'templates/tab-devices.html',
                        controller: 'DevicesCtrl'
                    }
                }
            });

        // if none of the above states are matched, use this as the fallback
        $urlRouterProvider.otherwise('/tab/hotspot');

    });

controller.js

angular.module('starter.controllers', [])
  .controller('HotSpotCtrl', function ($scope, $ionicLoading, $timeout) {

    var init = function () {
      $ionicLoading.show();
      // default to WPA2PSK
      $scope.config = {
        mode: 'WPA2PSK'
      };
      cordova.plugins.hotspot.isHotspotEnabled(function (enabled) {
          $scope.isHotSpotActive = enabled;
          $ionicLoading.hide();
        }
      );
    };

    // init controllers
    init();

    // API
    $scope.start = function () {
      $ionicLoading.show();
      cordova.plugins.hotspot.createHotspot(
        $scope.config.ssid, $scope.config.mode, $scope.config.password,
        function () {
          // delay UI refresh
          $timeout(function () {
            $ionicLoading.hide();
            init();
          }, 500);
        }, function () {
          $ionicLoading.hide();
          alert('Hotspot creation failed');
        }
      );
    };

    $scope.stop = function () {
      $ionicLoading.show();
      cordova.plugins.hotspot.stopHotspot(
        function () {
          $ionicLoading.hide();
          $scope.isHotSpotActive = false;
          init();
        }, function () {
          alert('AP disabling failed');
        }
      );
    };
  })
  .controller('DevicesCtrl', function ($scope) {
    var init = function () {
      cordova.plugins.hotspot.isHotspotEnabled(function (enabled) {
          $scope.isHotSpotActive = enabled;
          if (enabled) {
            $scope.status = 'Reading devices ...';
            cordova.plugins.hotspot.getAllHotspotDevices(
              function (response) {
                $scope.status = false;
                $scope.devices = response;
              }, function () {
                $scope.status = false;
                alert('Device listing failed.');
              }
            );
          }
        }, function () {
          $scope.status = false;
        }
      );
    };

    // init controllers
    init();

    // API
    $scope.refresh = function () {
      init()
    };
  });

来源:https://stackoverflow.com/questions/38244163/cordova-plugin-hotspot-module-error-angularjs

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!