APIcloud實時監聽手機網路狀態,
阿新 • • 發佈:2018-12-03
APIcloud實時監聽手機網路狀態,
上次遇到一個問題,是做一個視訊播放的時候,要獲取到當前網路狀態,在wifi的網路下直接播放,不是wifi的網路下,提示用當前網路播放,確定就要播放,取消就不播放。弄了一下,遇到一個問題當wifi的時候能正常播放,而沒wifi的時候你點選了播放確定後,播放了,你在幫wifi開啟,這個時候提示的依然是你剛才獲取的到網路,除非從新進入這個頁面,
這就要做網路的實時監聽。
程式碼很簡單。
var connectionType;//全域性中定義變數
apiready = function() {
connectionType = api.connectionType;
//下面這幾行程式碼就為最關鍵的,實時監聽你網路的變化,來改變connectionType的
//值,從而解決了舒心頁面的問題
api.addEventListener({
name: 'online'
}, function(ret, err) {
connectionType = ret.connectionType;
});
api.addEventListener({
name: 'offline'
}, function(ret, err) {
connectionType = "";
toast('網路無連線!' );
});
}
比如我們下面有一個播放或者跟網路相關的程式碼,播放為例
function openPlay() {
if(connectionType=='wifi' ){
//播模組
DDVplay.ddvplay({
vx: 0,
vy: 69,
vw: api.winWidth,
vh: 200,
vieurl: vieurl,//視訊播放連線
})
}else if(connectionType == "4G" || connectionType == "3G" || connectionType == "2G"){
//一個彈出提示框,標題,提示內容,一個取消按鈕和一個確定按鈕,根據自己的需要自己去找一個或者寫有個
showDialog("溫馨提示", "你當前正在使用" + connectionType + "網路,是否繼續播放?", "取消", "確定",function(ret, err){
document.getElementById('box').style.background = '#000';
DDVplay.ddvplay({
vx: 0,
vy: 69,
vw: api.winWidth,
vh: 200,
vieurl: vieurl,//視訊播放連線
})
})
}
}