2016-07-11 21 views
0

私はcordovaを使用してハイブリッドHTML5アプリケーションを作成しています。 devicereadybackbuttonなどのイベントはすべて正しく動作しています。実行中のイベントnavigator.connection.typeの場合、イベントは正しく機能しません。コードはコードナビゲータ。接続タイプが機能していません

<head> 
    <script type="text/javascript" src="./lib/js/cordova.js"></script> 
</head> 
<script> 
    function onLoad(){ 
     document.addEventListener("deviceready", onDeviceReady, false); 
    } 

    function onDeviceReady() { 
     document.addEventListener("backbutton", onBackButton, false); 
     checkConnection(); 
    } 

    function checkConnection() { 
     alert("test"); // first alert. Work 

     var networkState = navigator.connection.type; 
     var states = {}; 
     states[Connection.UNKNOWN] = 'Unknown connection'; 
     states[Connection.ETHERNET] = 'Ethernet connection'; 
     states[Connection.WIFI]  = 'WiFi connection'; 
     states[Connection.CELL_2G] = 'Cell 2G connection'; 
     states[Connection.CELL_3G] = 'Cell 3G connection'; 
     states[Connection.CELL_4G] = 'Cell 4G connection'; 
     states[Connection.CELL]  = 'Cell generic connection'; 
     states[Connection.NONE]  = 'No network connection'; 

     alert('Connection type: ' + states[networkState]); // second alert 
    } 

    function onBackButton() { 
     // code 
    } 
</script> 
<body onload="onLoad()"> 
    <!-- code --> 
</body> 

私は2つのアラートを使用します。第1のアラートはうまく動作し、第2のアラートは機能しません。私はnode.jsコマンドプロンプトを使って、私のアプリにプラグインcordova plugin add-plugin-network-informationを追加しました。どんな助けでも大歓迎です。

+0

を扱うあなたが任意の特定のエラーが出ますでしょうか? 'navigator.connection.type'はエラーを生成しますか? – Tibbelit

+0

私はアンドロイドで私のAPKアプリを実行しようとしました。だから私は、エラーログを表示する方法を知りません。何か提案がありますか? –

答えて

0

あなたはそのonload関数を必要としません。 checkConnection関数の呼び出しが早すぎます。

これを試してみてください。

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


function checkConnection() { 
    alert("test"); // first alert. Work 

    var networkState = navigator.connection.type; 
    var states = {}; 

    states[Connection.UNKNOWN] = 'Unknown connection'; 
    states[Connection.ETHERNET] = 'Ethernet connection'; 
    states[Connection.WIFI]  = 'WiFi connection'; 
    states[Connection.CELL_2G] = 'Cell 2G connection'; 
    states[Connection.CELL_3G] = 'Cell 3G connection'; 
    states[Connection.CELL_4G] = 'Cell 4G connection'; 
    states[Connection.CELL]  = 'Cell generic connection'; 
    states[Connection.NONE]  = 'No network connection'; 

    alert('Connection type: ' + states[networkState]); // second alert 
} 


function onDeviceReady() { 
    checkConnection(); 
} 

そしてコルドバはonDeviceReady

+0

と同じですが、2番目のアラートは表示されません。 –

関連する問題