Android 4.4デバイス用のコードバ(バージョン6)アプリケーションを作成しています。ここでは、ボタン押しのイベントをキャッチしようとしています。 ボリュームダウンボタン。残念ながら、私はサーバー上でアプリケーションをホストする必要があります。つまり、すべてのhtml、css、jsファイルがリモートに読み込まれます。アプリ自体のindex.html
しか含まに対し:Cordovaアプリケーションがサーバー上にある(デバイス上にない) - イベントが起動しない
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
<title>My App</title>
<script type="text/javascript">
function init() {
window.location.href="http://example.com:3000/myapp";
}
</script>
</head>
<body id="body" onload="init();">
</body>
</html>
サーバー側ではコルドバ-JSが正常に注入します: <script type="text/javascript" src="/assets/cordova.js"></script>
私はこのリポジトリを使用して、自分でコルドバ-JSを構築していますそして、そのドキュメント:https://github.com/apache/cordova-js
サーバー側のコルドバコードの大半は細かい実行されています!例えば。私はいくつかのプラグインをすべて追加しました(wifi-information、show-toast-messagesなど)。しかし残念ながら、ボタン・リスナーメニュー、のバック、volup、 voldown はもう機能していません!彼らは、コードバコードがデバイスに直接ロードされたときに動作していましたが、リモートサーバーに置いてからもう動作しませんでした。
JSファイルサーバーから:
//Gets called from the body-tag of the html-site - works!
function onLoad() {
document.addEventListener("deviceready", onDeviceReady, false);
}
function onDeviceReady() {
//This works!
console.log("onDeviceReady");
//This doesn't do anything (but also no error messages)
navigator.app.overrideButton("backbutton", true);
navigator.app.overrideButton("menubutton", true);
document.addEventListener("backbutton", onBackKeyDown, false);
document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false);
document.addEventListener("menubutton", onMenuKeyDown, false);
//Plugins that are loaded from here all work!
}
function onMenuKeyDown(event) {
//This doesn't work
console.log("menu pressed");
}
function onBackKeyDown(event) {
//This doesn't work
console.log("back pressed");
}
function onVolumeUpKeyDown() {
//This doesn't work
console.log("Volume up pressed");
}
誰かがこのコードはもはや機能しない理由、教えてください、私はこの問題を解決する手助けすることはできますか?