我希望使用 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 文件中,我确保已按照指定的顺序声明文件是必需的 -
angular.min.js
ngCordova.min.js
cordova.js
如何解决此错误?
答案 0 :(得分:2)
这里的答案是 Cordova CLI在构建应用程序时会自动包含cordova.js
和任何必要的依赖项。
cordova.js
文件位于www
目录中,因此您只需要包含该文件 -
<script type="text/javascript" src="cordova.js"></script>
引用一个你没有透露的文件似乎不合逻辑,但是一旦你了解了CLI的运作方式,它就有意义了。
初学者的主要问题是它的记录很差。事实上, Cordova 作为一个整体似乎记录不完整,而不是数量方面,而是相关性 - 旧版本也是如此。虽然这是一个很棒的项目,但希望这可以在不久的将来得到解决。