Phonegap - 设备尚未被解雇

时间:2014-07-07 19:21:10

标签: javascript cordova

此代码显示(即警告)“alert1”但不显示“alert2”。我正在使用三星Galaxy Tab 3 7.0作为目标设备。以下代码位于index.js

编辑:“alert3”既未显示 - 也适用于那些对javascript上下文和闭包感到茫然的人。

var app = {
    bootStrap: function() {
        //code here does not run
        window.alert("alert2");
        //document.body.style.backgroundColor = "blue";
    },
    initialize: function() {
        var current = this;
        //code here runs
        window.alert("alert1");
        document.addEventListener("deviceready", function(){
            //code inside this anonymous function neither runs
            window.alert("alert3");
            current.bootStrap();
        }, false);
    }
};

正在调用initialize方法:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <meta name="format-detection" content="telephone=no" />
        <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
        <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
        <link rel="stylesheet" type="text/css" href="css/platform.css" />
        <script type="text/javascript" src="phonegap.js"></script>
        <script type="text/javascript" src="js/angular.min.js"></script>
        <script type="text/javascript" src="js/angular-route.min.js"></script>
        <script type="text/javascript" src="js/angular-resource.min.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <title>1001Carros</title>
    </head>
    <body>
        <script type="text/javascript">
            app.initialize();
        </script>
        <div id="log">
            <button id="clickme" value="Click Me"></button>
            pantalla principal
        </div>
    </body>
</html>

问题:为什么? (也尝试评论并将背景颜色更改为蓝色,但两条线都没有执行)。

1 个答案:

答案 0 :(得分:0)

我在cordova 3.4.x中尝试了你的代码,它在模拟器中没有任何问题 我在index.html文件中包含了 cordova.js 。我可以看到您已包含 phonegap.js 。不确定这是不是问题。

您是在真实(三星Galaxy Tab 3 7.0)设备或Android模拟器上进行测试吗? 你正在开发哪种版本的phonegap?

您可以尝试删除所有关闭代码并测试下面的代码

document.addEventListener("deviceready", function(){
            //code inside this anonymous function neither runs
            window.alert("alert3");
        }, false);
}

如果上述代码不起作用,则意味着&#34; deviceready&#34;事件没有被解雇。

您可以尝试创建自定义事件,并检查其是否正常工作。

initialize: function() {
        var current = this;
        //code here runs
        window.alert("alert1");
        var event = new Event('myevent');
        document.addEventListener("myevent", function(){
            //code inside this anonymous function neither runs
            window.alert("My Event!");
            current.bootStrap();
        }, false);
        document.dispatchEvent(event);
}