科尔多瓦6.3.1 android应用程序的JavaScript不解雇
我一直在撞墙,如果有人可以帮助,我会感激不尽!科尔多瓦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。我去哪里看控制台日志?谢谢!我不知道如何在这个环境下进行调试。
从删除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');
}
Homen,谢谢你的尝试,但我尝试过,并没有得到警报。是否因为我正在测试实际的Android设备上的apk文件? – user2278120
我只为实际的Android设备写的。我相信它会工作。只使用上面的代码。没有其他的。它会工作 – Homen
我确实尝试了这一点。不知道为什么它不起作用。 – user2278120
我遇到了同样的错误,它无法在模拟器上工作。这是为我工作的解决方案,我认为它也适用于您。我在MAC OS 10.12上运行最新的cordova 6.3.1。
我从我的html文件中删除了这行代码。我仍然试图了解为什么它删除下面的行后工作。
什么?您是否测试OP代码以查看它是否修复? – kabanus
我看到该行无法发布。我做的是删除js文件夹中的项目随附的index.js。我也从我的所有html页面中删除了它的链接。看来这是阻止我整个设备准备就绪的问题。为什么,因为从我的所有页面中删除它后,即使从真实设备而不是仿真器运行应用程序,deviceready现在也可以启动。你应该尝试一下,看看。 –
你碰巧命名你的项目'科尔多瓦'?应该加载一个真正的'cordova.js'文件。你的文件被认为是'main.js',因为它不包含cordova js框架。 – gro
不,它的名字叫你好,因为我正在关注hello world tutorial的官方文档。 – user2278120
@ user2278120你在android设备上测试它吗? – Gandhi