2016-03-22 17 views
0

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"); 
} 

誰かがこのコードはもはや機能しない理由、教えてください、私はこの問題を解決する手助けすることはできますか?

答えて

0

...このよう

//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"); 
    } 



    document.addEventListener("backbutton", onBackKeyDown, false); 

    document.addEventListener("volumeupbutton", onVolumeUpKeyDown, false); 

    document.addEventListener("menubutton", onMenuKeyDown, false); 

    function onMenuKeyDown(event) { 

     console.log("menu pressed"); 
    } 

    function onBackKeyDown(event) { 

     console.log("back pressed"); 
    } 

    function onVolumeUpKeyDown() { 

     console.log("Volume up pressed"); 
    } 
をお試しください
関連する問題