W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在渲染進程中,在線/離線事件 的探測,是通過標準 HTML5 API 中 navigator.onLine
屬性來實現(xiàn)的。
navigator.onLine
屬性返回值:
false
?:如果所有網(wǎng)絡請求都失敗(例如,斷開網(wǎng)絡)。true
?: 在其他情況下都返回 true由于許多情況都會返回 true
,你應該小心對待誤報的情況, 因為我們不能總是假設 true
值意味著 Electron 可以訪問互聯(lián)網(wǎng)。 例如,當計算機運行的虛擬化軟件時,虛擬以太網(wǎng)適配器處于 "always connected" 狀態(tài)。 因此,如果您想要確定 Electron 的互聯(lián)網(wǎng)訪問狀態(tài),您應該為此檢查進行額外的開發(fā)。
從HTML文件 index.html
開始,這個例子會演示 navigator.onLine
API 是如何被用來構建一個連接狀態(tài)指示器的。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
<meta http-equiv="Content-Security-Policy" content="script-src 'self' 'unsafe-inline';" />
</head>
<body>
<h1>Connection status: <strong id='status'></strong></h1>
<script src="renderer.js"></script>
</body>
</html>
為了操作DOM,創(chuàng)建一個 renderer.js
文件,添加事件監(jiān)聽器到 'online'
和 'offline'
窗口
中. 事件處理器設置基于 navigator.onLine
的結果到 <strong id='status'>
element 的內容中。
const updateOnlineStatus = () => {
document.getElementById('status').innerHTML = navigator.onLine ? 'online' : 'offline'
}
window.addEventListener('online', updateOnlineStatus)
window.addEventListener('offline', updateOnlineStatus)
updateOnlineStatus()
最后,創(chuàng)建一個 main.js
文件用來給主進程創(chuàng)建窗口。
const { app, BrowserWindow } = require('electron')
const createWindow = () => {
const onlineStatusWindow = new BrowserWindow({
width: 400,
height: 100
})
onlineStatusWindow.loadFile('index.html')
}
app.whenReady().then(() => {
createWindow()
app.on('activate', () => {
if (BrowserWindow.getAllWindows().length === 0) {
createWindow()
}
})
})
app.on('window-all-closed', () => {
if (process.platform !== 'darwin') {
app.quit()
}
})
啟動 Electron 應用程序后,您應該能看到通知:
注意:如果你需要將連接狀態(tài)發(fā)送給主流程,請使用 IPC 渲染器 API。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: