デバイスにインターネット接続がないときにポップアップを表示しようとしています。
次の例が機能するようになりましたが、結果が「ネットワーク接続なし」の場合にのみアラートを表示したいと考えています。
私はこれを試しました:
if (states[Connection.NONE]){
alert('Geen internet :(');
};
ただし、接続があるかどうかに関係なく、アラートボックスがポップアップするだけです。誰が私を助けることができます?:)
デバイスにインターネット接続がないときにポップアップを表示しようとしています。
次の例が機能するようになりましたが、結果が「ネットワーク接続なし」の場合にのみアラートを表示したいと考えています。
私はこれを試しました:
if (states[Connection.NONE]){
alert('Geen internet :(');
};
ただし、接続があるかどうかに関係なく、アラートボックスがポップアップするだけです。誰が私を助けることができます?:)
古い質問ですが、これが私のやり方です - イベントを使用して、デバイスがオンラインかオフラインかを検出できます。これは、デバイスがオフラインになるとすぐにポップアップが表示されるため、この状況に最適です。
document.addEventListener("offline", function(){ alert("You're offline") }, false);
デバイスがインターネット接続を回復したときに、同じことを行うには?:
document.addEventListener("online", function(){ alert("You're online") }, false);
ここでイベントのドキュメントをチェックしてください: http://docs.phonegap.com/en/1.8.1/cordova_events_events.md.html#offline
アップデート :
cordova 5 の時点で、これらのイベントはcordova-plugin-network-information に移動されました
もしあなたがそうするなら
if (states[Connection.NONE]){
alert('Geen internet :(');
};
これは起こります。
これを行う。
networkState = navigator.network.connection.type
alert(states[networkState]);
これがあなたのために働くかどうか見てください。
編集: 比較してください:
if (networkState == Connection.NONE){
alert('no internet ');
};
else を追加して何もしない...
if (navigator.network.connection.type == Connection.NONE) {
alert('Geen internet :(');
}
else {
// nothing
};
ここでコルドバ 2.0.0 の最新のドキュメントを確認してください: http://docs.phonegap.com/en/2.0.0/cordova_connection_connection.md.html#Connection
良い例があります。Connection.NONE または Connection.UNKNOWN を確認する必要があります。どちらもインターネットがないことを意味します。それ以外の場合は、何らかのインターネット接続があることを意味します。
これは、定数の真偽をテストしているためです。そのタイプのテストは常に true を返します。使用したいものは次のとおりです。
if (navigator.network.connection.type == Connection.NONE]{
alert('Geen internet :(');
};
解決 :
<script type="text/javascript" charset="utf-8">
// Wait for PhoneGap to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// PhoneGap is loaded and it is now safe to make calls PhoneGap methods
//
function onDeviceReady() {
checkConnection();
}
function checkConnection() {
var networkState = navigator.network.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.NONE] = 'No network connection';
alert('Connection type: ' + states[networkState]);
}
</script>
Try the below code.
var networkState = navigator.network.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.NONE] = 'No network connection';
if ((states[networkState]) == states[Connection.NONE])
{
alert("Please check your internet connectivity and try again");
}
<script type="text/javascript" charset="utf-8">
// Wait for device API libraries to load
//
document.addEventListener("deviceready", onDeviceReady, false);
// device APIs are available
//
function onDeviceReady() {
checkConnection();
}
function checkConnection() {
var networkState = navigator.connection.type;
if(navigator.connection.type == Connection.NONE) {
alert("No network connection.Please turn it on");
}
}
</script>