W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在渲染進程中, Online and offline 事件檢測,是通過標準 HTML5 API 中 navigator.onLine
屬性來實現(xiàn)的。 脫機時 (從網(wǎng)絡斷開), navigator.onLine
屬性將返回 false
, 除此之外都返回true
。 由于所有其他條件都返回 true
, 因此必須警惕信息誤報, 因為我們不能保證 true
的情況下 Electron 一定可以訪問 internet。 例如當軟件運行在一個虛擬網(wǎng)絡適配器始終為“connected”的虛擬機中時,Electron就不能訪問Internet。 因此,如果你想確保 Electron 真實的網(wǎng)絡訪問狀態(tài),你應該開發(fā)額外的檢測方法。
使用標準 HTML5 APIs 可以實現(xiàn)在線和離線事件的探測,就像以下例子:
main.js
var app = require('app');
var BrowserWindow = require('browser-window');
var onlineStatusWindow;
app.on('ready', function() {
onlineStatusWindow = new BrowserWindow({ width: 0, height: 0, show: false });
onlineStatusWindow.loadURL('file://' + __dirname + '/online-status.html');
});
online-status.html
<!DOCTYPE html>
<html>
<body>
<script>
var alertOnlineStatus = function() {
window.alert(navigator.onLine ? 'online' : 'offline');
};
window.addEventListener('online', alertOnlineStatus);
window.addEventListener('offline', alertOnlineStatus);
alertOnlineStatus();
</script>
</body>
</html>
也會有人想要在主進程也有回應這些事件的實例。然后主進程沒有 navigator
對象因此不能直接探測在線還是離線。使用 Electron 的進程間通訊工具,事件就可以在主進程被使,就像下面的例子:
main.js
var app = require('app');
var ipc = require('ipc');
var BrowserWindow = require('browser-window');
var onlineStatusWindow;
app.on('ready', function() {
onlineStatusWindow = new BrowserWindow({ width: 0, height: 0, show: false });
onlineStatusWindow.loadURL('file://' + __dirname + '/online-status.html');
});
ipc.on('online-status-changed', function(event, status) {
console.log(status);
});
online-status.html
<!DOCTYPE html>
<html>
<body>
<script>
var ipc = require('ipc');
var updateOnlineStatus = function() {
ipc.send('online-status-changed', navigator.onLine ? 'online' : 'offline');
};
window.addEventListener('online', updateOnlineStatus);
window.addEventListener('offline', updateOnlineStatus);
updateOnlineStatus();
</script>
</body>
</html>
注意:如果電腦啟動了虛擬機的網(wǎng)卡驅(qū)動,可能會出現(xiàn)離線探測不準確.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: