簡體   English   中英

如何檢查設備是在線還是離線Phonegap

[英]How to check device is Online or Offline Phonegap

檢查設備(智能手機)是在線還是離線的最簡單方法是什么。 我正在使用phonegap,jquery mobile。 我找到了這個。

document.addEventListener("online", yourCallbackFunction, false);

我想要做的是檢查互聯網連接,並決定從互聯網或設備本地數據庫獲取數據。

if(deviceoffline)
  getDataFromLokalDatabase();
else
  getDataFromInternet();

這是使用本機phonegap代碼的代碼:

function checkInternet() {

    var networkState = navigator.connection.type;

    if(networkState == Connection.NONE) {

        onConnexionError();
        return false;

    } else {

       return true;
    }
}

您可以使用navigator.onLine

var isOffline = 'onLine' in navigator && !navigator.onLine;

if ( isOffline ) {
    //local db
}
else {
    // internet data
}

但請注意,如果不支持navigator.onLineisOffline將始終為false

使用Jquery進行ajax調用並檢查錯誤代碼,如果錯誤代碼為0則設備處於脫機狀態

$.ajax({
    //your ajax options
    error: function (request) { 
         if (request.status == 0) {
            alert("you're offline");
        }
    }
});

請注意,雖然navigator.onLine是最簡單的解決方案, 但它在所有瀏覽器上的表現並不一致 在Chrome上,即使您沒有互聯網,如果您有LAN電纜,它也會告訴您它在線。

您可以使用cordova插件網絡信息

您還可以嘗試向服務器發出AJAX請求; 通常你想知道你是否離線,因為在這種情況下你無法與服務器通信 ,因此“離線”通常意味着“無法與服務器通信”(這也可能是由於服務器脫機造成的)。 如果您需要檢查帶寬或鏈接質量,則使用超時或多個請求也很有用。

對於每個用例,離線並不意味着相同,您首先需要知道上述哪種技術最適合您,然后實現其中的一個或幾個。

我想要做的是檢查互聯網連接,並決定從互聯網或設備本地數據庫獲取數據。

通過請求檢查與服務器的鏈接似乎是最佳選擇。

本機onLine有點不穩定,特別是在Web應用程序環境中..但可以用於pageLoad的初始檢查,但它有點無用,就好像你到達那一點,你有一個互聯網連接。

嘗試ajax更可靠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM