cordova.js导致引用错误'require is not defined'

时间:2015-09-01 15:41:13

标签: angularjs cordova ngcordova

我希望使用 ngCordova 来检测设备的网络状态。但是,只要我包含 cordova.js ,我就会收到错误消息 -

  

未捕获的ReferenceError:未定义require(cordova.js:23)

我已安装并成功运行 Node.js Cordova ,我已下载并安装 ngCordova {{3} }。

我还通过 Cordova CLI 安装网络信息插件 -

  

cordova插件添加cordova-plugin-network-information

根据文档,这是我正在使用的代码示例(并且澄清一下,一旦我包含cordova.js就会出现错误,所以即使没有这个代码snippit我仍然会收到错误;这是显示我的最终目标) -

var app = angular.module('myApp', ['ngCordova']);

app.controller('myCtrl', ['$rootScope', '$scope', '$cordovaNetwork', function($rootScope, $scope, $cordovaNetwork){

    document.addEventListener("deviceready", function () {

        var type = $cordovaNetwork.getNetwork()

        var isOnline = $cordovaNetwork.isOnline()

        var isOffline = $cordovaNetwork.isOffline()


        // listen for Online event
        $rootScope.$on('$cordovaNetwork:online', function(event, networkState){
            var onlineState = networkState;
        })

        // listen for Offline event
        $rootScope.$on('$cordovaNetwork:offline', function(event, networkState){
            var offlineState = networkState;
        })

    }, false);

}]);

在我的 index.html 文件中,我确保已按照指定的顺序声明文件是必需的 -

  1. angular.min.js
  2. ngCordova.min.js
  3. cordova.js
  4. 如何解决此错误?

1 个答案:

答案 0 :(得分:2)

这里的答案是 Cordova CLI在构建应用程序时会自动包含cordova.js和任何必要的依赖项。

cordova.js文件位于www目录中,因此您只需要包含该文件 -

<script type="text/javascript" src="cordova.js"></script>

引用一个你没有透露的文件似乎不合逻辑,但是一旦你了解了CLI的运作方式,它就有意义了。

初学者的主要问题是它的记录很差。事实上, Cordova 作为一个整体似乎记录不完整,而不是数量方面,而是相关性 - 旧版本也是如此。虽然这是一个很棒的项目,但希望这可以在不久的将来得到解决。