2016-08-20 15 views
0

誰かが助けてくれれば、私は壁に向かって頭を叩いています。Cordova 6.3.1アンドロイドアプリ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(); 

私は、アプリを起動すると、私は警告を取得していない、と音量ダウンはありません何もない。これは私がまたAPK

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デジタル海ボックス上のノードとコルドバをインストールしました。コンソールログはどこに表示されますか?ありがとう!この環境でどのようにデバッグするのか分かりません。

+0

あなたのプロジェクトに「コードバ」という名前を付けましたか?実際の 'cordova.js'ファイルが読み込まれているはずです。あなたのファイルは 'main.js'とみなされます。これはcordova js frameworkを含んでいないためです。 – gro

+0

いいえ、helloという名前です。私はhello worldチュートリアルフォームを公式の文書に従っていたからです。 – 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、試していただきありがとうございますが、これを試してもアラートは表示されませんでした。実際のアンドロイドデバイスでapkファイルをテストしているからですか? – user2278120

+0

私は実際のアンドロイドデバイスのためだけに書いてあります。私はそれが動作すると確信しています上記のcode.Nothing else.Itは動作します – Homen

+0

私はまさにこれを試してみました。なぜそれが動作しないのか分かりません。 – user2278120

-1

同じエラーが発生しましたが、エミュレータでは動作しませんでした。ここに私のために働いた解決策があります。それはあなたのためにも役立つと思います。 MAC OS 10.12で最新のコードバ6.3.1を実行しています。

私はhtmlファイルからこのコード行を削除しました。私はまだ以下の行を削除した後になぜそれが働いたのか理解しようとしています。

+0

どの行ですか? OPコードをテストして修正したかどうか確認しましたか? – kabanus

+0

私は行が転記されなかったのを見ます。私がしたのは、jsフォルダ内のプロジェクトに付属しているindex.jsを削除することでした。私はまた、すべてのHTMLページからそのリンクを削除しました。それは、私の全魔法使いが発砲するのを妨げるものだったようです。なぜなら、私のすべてのページからそれを削除した後、エミュレータではなく、実際のデバイスからアプリを実行していても、デバイスが今すぐ起動できるからです。あなたはそれを試してみるべきです。 –

関連する問題