device.platform在cordova项目中返回'device is not defined'

时间:2015-12-04 11:11:08

标签: javascript android cordova

当我运行我的cordova android应用程序时,我遇到了一个随机发生的问题。基本上,“设备”有时是空的,有时则不是。我不知道为什么会这样,这是我代码的第一部分:

app.js

app = {

    // deviceready Event Handler
    onDeviceReady: function() {

        try
        {           
            var devicePlatform = device.platform;
            var deviceVersion = device.version;     
        }
        catch(e)
        {
            alert("Error: "+e)
        }

        ....
    }
}

的index.html

....
    </div>

    <script src="cordova.js"></script>
    <script src="js/libs/openfb.js"></script>
    <script src="js/app.js"></script>
    <script>
        $(document).on("mobileinit", function() {
            $.mobile.ajaxEnabled = true;
            $.mobile.linkBindingEnabled = true;
            $.mobile.defaultPageTransition = "fade";
            $.mobile.phonegapNavigationEnabled = true;
            $.mobile.allowCrossDomainPages = true;   
        });

        // init application
        $(window).load(function() {
            $(document).bind('deviceready', app.onDeviceReady());   
        });
    </script>
    </body>
</html>

设备插件已经过时,所以我获得了新版本0.3.0,但是bug仍然存在。任何提示?

2 个答案:

答案 0 :(得分:1)

您的应用应该在真实手机上运行,​​而不是在模拟器上运行。

我认为你只在Chrome上运行app。

答案 1 :(得分:0)

请尝试绑定监听器

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    var element = document.getElementById('deviceProperties');
    element.innerHTML = 'Device Model: '    + device.model    + '<br />' +
                        'Device Cordova: '  + device.cordova  + '<br />' +
                        'Device Platform: ' + device.platform + '<br />' +
                        'Device UUID: '     + device.uuid     + '<br />' +
                        'Device Version: '  + device.version  + '<br />';
}

PhoneGap API

了解详情

希望这有帮助!

干杯!