Phonegap - Javascript无法正常工作

时间:2014-06-30 23:17:03

标签: javascript android cordova

我想解释一下“Javascript not working”是什么意思,但我唯一能做的就是告诉代码永远不会执行,并且不知道如何调试。

让我们开始吧:我正在开发一个Phonegap应用程序 - 从这个意义上讲,我没有可以检查的控制台对象。

这是我的index.html文件:

<!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" />
        <title>1001Carros</title>
    </head>
    <body>
        <script type="text/javascript" src="phonegap.js"></script>
        <script type="text/javascript" src="js/index.js"></script>
        <script type="text/javascript">
            app.initialize();
        </script>
        adaptandose a dispositivo ...
    </body>
</html>

这是我的javascript:

var app = {
    // Application Constructor
    initialize: function() {
        switch(device.platform) {
            case "iPhone":
                location.href = "index-iphone.html"; break;
            case "Android":
            case "BlackBerry":
            case "BlackBerry WebWorks":
                location.href = "index-android.html"; break;
            default:
                location.href = "index-android.html";
        }
    }
};

我的意图是:加载文档时,调用initialize()。这种方法将验证平台并重定向到适当的屏幕。

When I run my app in the emulator(最后将?enableripple=cordova添加到我的网址),我得知“phonegap.js”不存在。如果这是问题所在,似乎很容易解释为什么我没有被重定向。

但是,当我通过本地工具(即phonegap run android)编译应用程序时,这样的文件似乎是在assets目录中创建的(在android平台中)。

问题:如何调试此问题?我正在使用模拟器,或者三星Galaxy Tab 3.我想调试设备并查看问题是否与文件有关(因为它显示在模拟器/波纹中)或者是否在其他地方。

如果有更多经验的人可以帮助我,如果他们有类似的问题,那就太好了,因为这是我的第一个手机应用程序。

3 个答案:

答案 0 :(得分:0)

要回答有关调试的问题,由于您的设备很可能没有控制台,因此您必须使用警报。我喜欢使用警报来测试函数是否正在触发,是否正在存储/传递适当的数据等等。

至于为什么你的javascript不起作用,我并不积极,但我认为这与你使用&#34; app&#34;有关。我认为这是为本机的phonegap事物保留的,如&#34; navigator.app.exit()&#34;中所示。我建议你重命名变量并试试。

答案 1 :(得分:0)

我不明白你的问题。但我发现你的代码存在问题。在phonegap中,必须在事件设备已经触发时调用所有API设备(由phonegap提供):

document.addEventListener('deviceready', function(){
  // Code here
}, false);

在phonegap中,支持许多工具来立即调试应用:phonegap debugweinre is power 您可以使用console.log('...'),它支持任何设备,请参阅IDE中的日志:Xcode,Eclipse,..

答案 2 :(得分:0)

有很多方法可以在android上调试你的phonegap代码: