cordova ondeviceready不被触发了...(iOS)

最近在尝试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不被触发好诡异啊....不知道这是为什么

求解,可发红包

阅读 5.2k
2 个回答
新手上路,请多包涵

我也遇到这个问题了,分析了一波发现 cordova.js 没有被引入,调用的页面手动引入一次,加载完看看日志,能看到为什么报错;
工程中 测试的html 引入一下 看看就能看到 为什么报错了
<script type="text/javascript" charset="utf-8" src="www/cordova.js"></script>

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进