2016-08-20 164 views
0

我一直在撞墙,如果有人可以帮助,我会感激不尽!科尔多瓦6.3.1 android应用程序的JavaScript不解雇

我的js文件都在www/js中。 cordova.js文件是为我生成的。

身体中的“e”只是为了确保我的新代码到达那里。它是,我已经改变了几十个版本的信件,同时试图让这个工作,只是为了确保,并且它总是变化。

的index.html

<!DOCTYPE html> 
<html> 
<head> 
<title>Device Ready Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
<script type="text/javascript" charset="utf-8" src="example.js"></script> 
</head> 
<body onload="onLoad()"> 
    e 
</body> 
</html> 

example.js

function onLoad() { 
    document.addEventListener("deviceready", onDeviceReady, false); 
} 

    // device APIs are available 
// 
function onDeviceReady() { 
    alert('yo'); 
    document.addEventListener("volumedownbutton", onVolumeDown, false); 
    // Add similar listeners for other events 
} 

function onVolumeDown() { 
    alert('hey'); 
    document.body.innerHTML += '<div style="position:absolute;width:100%;height:100%;opacity:0.3;z-index:100;background:#000;">asdfs</div>'; 

} 

cordova.js

var app = { 
    // Application Constructor 
    initialize: function() { 
     this.bindEvents(); 
    }, 
    // Bind Event Listeners 
    // 
    // Bind any events that are required on startup. Common events are: 
    // 'load', 'deviceready', 'offline', and 'online'. 
    bindEvents: function() { 
     document.addEventListener('deviceready', this.onDeviceReady, false); 
    }, 
    // deviceready Event Handler 
    // 
    // The scope of 'this' is the event. In order to call the 'receivedEvent' 
    // function, we must explicitly call 'app.receivedEvent(...);' 
    onDeviceReady: function() { 
     app.receivedEvent('deviceready'); 
    }, 
    // 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(); 

当我火起来的应用程序,我没有得到任何警告,而成交量下降呢没有。这是我在控制台中看到,当我建立

BUILD SUCCESSFUL 

Total time: 4.479 secs 
Built the following apk(s): 
     /root/hello/platforms/android/build/outputs/apk/android-debug.apk 
[email protected]:~/hello# cordova -v 
6.3.1 

另外,我安装的节点和科尔多瓦在仅使用命令行空白的Ubuntu 14.04数字海洋框中APK。我去哪里看控制台日志?谢谢!我不知道如何在这个环境下进行调试。

+0

你碰巧命名你的项目'科尔多瓦'?应该加载一个真正的'cordova.js'文件。你的文件被认为是'main.js',因为它不包含cordova js框架。 – gro

+0

不,它的名字叫你好,因为我正在关注hello world tutorial的官方文档。 – user2278120

+0

@ user2278120你在android设备上测试它吗? – Gandhi

回答

0

从删除Onload事件HTML page.And不写cordova.js file.Cordova会自动创建该file.You可以使用下面的代码:

的index.html

<!DOCTYPE html> 
<html> 
<head> 
<title>Device Ready Example</title> 

<script type="text/javascript" charset="utf-8" src="cordova.js"></script> 
<script type="text/javascript" charset="utf-8" src="example.js"></script> 
</head> 
<body> 
    e 
</body> 
</html> 

example.js

document.addEventListener('deviceready',onDeviceReady,false); 

function onDeviceReady() { 
    alert('yo'); 
document.addEventListener("volumedownbutton", onVolumeDown, false); 
// Add similar listeners for other events 
} 
function onVolumeDown() { 
    alert('hey'); 
} 
+0

Homen,谢谢你的尝试,但我尝试过,并没有得到警报。是否因为我正在测试实际的Android设备上的apk文件? – user2278120

+0

我只为实际的Android设备写的。我相信它会工作。只使用上面的代码。没有其他的。它会工作 – Homen

+0

我确实尝试了这一点。不知道为什么它不起作用。 – user2278120

-1

我遇到了同样的错误,它无法在模拟器上工作。这是为我工作的解决方案,我认为它也适用于您。我在MAC OS 10.12上运行最新的cordova 6.3.1。

我从我的html文件中删除了这行代码。我仍然试图了解为什么它删除下面的行后工作。

+0

什么?您是否测试OP代码以查看它是否修复? – kabanus

+0

我看到该行无法发布。我做的是删除js文件夹中的项目随附的index.js。我也从我的所有html页面中删除了它的链接。看来这是阻止我整个设备准备就绪的问题。为什么,因为从我的所有页面中删除它后,即使从真实设备而不是仿真器运行应用程序,deviceready现在也可以启动。你应该尝试一下,看看。 –

相关问题