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


在使用html5配合cordova做webapp時,有時需要實時監測手機的網絡 狀況。html5里面是沒有相關的js的,這時就需要在cordova里找相關插件了。

一、插件查找

1、在cordova中文網http://cordova.axuer.com/,的插件里搜索 "network-information",如下圖:

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

二、使用插件

1、安裝插件

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

2、插件應用

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

 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,監聽手機失去網絡連接

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

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

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-1、手機欠費,數據流量開啟,,返回的狀態是CELL_2G 或 CELL_3G 或 CELL_4G ;

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

4-3,wifi有信號,但有權限,必須認證后才能連接。返回狀態也是“wifi”

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM