最近在尝试Cordova,内嵌一个WebGL的页面,但是遇到一个问题....ondeviceready竟然不被触发了....
给的样例运行起来是好的,但是我替换成自己的工程的话,就不触发了。。。
index.js函数逻辑没变,如下:其他还有一些js在别的文件里面
var app = {
// Application Constructor
initialize: function() {
var element = document.getElementById('heading');
element.innerHTML = 'Waiting device ready ';
document.addEventListener('deviceready', this.onDeviceReady.bind(this), false);
},
// deviceready Event Handler
//
// Bind any cordova events here. Common events are:
// 'pause', 'resume', etc.
onDeviceReady: function() {
this.receivedEvent('deviceready');
function onSuccess(heading) {
var element = document.getElementById('heading');
element.innerHTML = 'Heading: ' + heading.magneticHeading;
};
function onError(compassError) {
alert('Compass error: ' + compassError.code);
};
var options = {
frequency: 3000
}; // Update every 3 seconds
var watchID = navigator.compass.watchHeading(onSuccess, onError, options);
main();
},
// Update DOM on a Received Event
receivedEvent: function(id) {
// var parentElement = document.getElementById(id);
// var listeningElement = parentElement.querySelector('.listening');
// var receivedElement = parentElement.querySelector('.received');
// listeningElement.setAttribute('style', 'display:none;');
// receivedElement.setAttribute('style', 'display:block;');
// console.log('Received Event: ' + id);
}
};
app.initialize();
index.html头部也写了这样一些东西:
<meta http-equiv="Content-Security-Policy" content="default-src 'self' data: gap: https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; media-src *; img-src 'self' data: content:;">
<meta charset="UTF-8">
<meta name="msapplication-tap-highlight" content="no">
<meta name="format-detection" content="telephone=no">
觉得onDeviceReady不被触发好诡异啊....不知道这是为什么
求解,可发红包
我也遇到这个问题了,分析了一波发现 cordova.js 没有被引入,调用的页面手动引入一次,加载完看看日志,能看到为什么报错;
工程中 测试的html 引入一下 看看就能看到 为什么报错了
<script type="text/javascript" charset="utf-8" src="www/cordova.js"></script>