[英]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.onLine
則isOffline
將始終為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.