使用cordova network-information 插件監聽手機網絡狀態

在使用html5配合cordova作webapp時,有時須要實時監測手機的網絡 情況。html5裏面是沒有相關的js的,這時就須要在cordova裏找相關插件了。html

1、插件查找

一、在cordova中文網http://cordova.axuer.com/,的插件裏搜索 "network-information",以下圖:html5

會在頁面下方出現該插件的網址:cordova-plugin-network-informationreact

2、使用插件

一、安裝插件web

在項目文件-》app文件下使用cmd調出命令框,安裝 cordova plugin add cordova-plugin-network-informationnpm

二、插件應用網絡

2-1,獲得當年網絡狀態:app

 var networkState = navigator.connection.type;
networkState的返回值(網絡的狀態):
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';
狀態值分別表明:
UNKNOWN  = '未知鏈接' ;   
ETHERNET  = '以太網鏈接' ;  
WIFI  = ' WiFi鏈接' ;      
CELL_2G = '小區2G鏈接' ;   
CELL_3G  = '小區3G鏈接' ;   
CELL_4G ]= '單元格4G鏈接' ;   
CELL  = '單元格通用鏈接' ;      
NONE  = '沒有網絡鏈接' ; 

2-2,監聽手機失去網絡鏈接webapp

document.addEventListener("offline", callbackfunction, false);

2-3,監聽手機收到網絡鏈接以容許應用程序訪問互聯網時spa

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

3,具體示例插件

     var networkFlag  = true;// 默認手機聯網
    var networkState = navigator.connection.type;
        if(networkState=='none'){// 無網
            networkFlag = false;
        }
        document.addEventListener("offline", function(){ // 斷網
            networkFlag = false;
            // 其它語句
        }, false);
        document.addEventListener("online", function(){  // 開啓網絡
            networkFlag = true;
            // 其它語句
        }, false);    

 4,注意:此插件只能監聽網絡的狀態,並不能知道是否有真實的網絡。部分狀況以下:

4-一、手機欠費,數據流量開啓,,返回的狀態是CELL_2G 或 CELL_3G 或 CELL_4G ;

4-2,wifi有信號,實際沒有網絡。即路由器正常工做,沒有插網線。返回狀態「WiFi」

4-3,wifi有信號,但有權限,必須認證後才能鏈接。返回狀態也是「wifi」

這三種狀況下監聽到的都是有網絡的,實際沒網絡

相關文章
相關標籤/搜索