99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

Electron 在線/離線事件探測(cè)

2023-02-16 17:15 更新

概覽

在渲染進(jìn)程中,在線/離線事件 的探測(cè),是通過(guò)標(biāo)準(zhǔn) HTML5 API 中 navigator.onLine 屬性來(lái)實(shí)現(xiàn)的。

navigator.onLine 屬性返回值:

  • ?false?:如果所有網(wǎng)絡(luò)請(qǐng)求都失敗(例如,斷開(kāi)網(wǎng)絡(luò))。
  • ?true?: 在其他情況下都返回 true

由于許多情況都會(huì)返回 true,你應(yīng)該小心對(duì)待誤報(bào)的情況, 因?yàn)槲覀儾荒芸偸羌僭O(shè) true 值意味著 Electron 可以訪問(wèn)互聯(lián)網(wǎng)。 例如,當(dāng)計(jì)算機(jī)運(yùn)行的虛擬化軟件時(shí),虛擬以太網(wǎng)適配器處于 "always connected" 狀態(tài)。 因此,如果您想要確定 Electron 的互聯(lián)網(wǎng)訪問(wèn)狀態(tài),您應(yīng)該為此檢查進(jìn)行額外的開(kāi)發(fā)。

示例

從HTML文件 index.html 開(kāi)始,這個(gè)例子會(huì)演示 navigator.onLine API 是如何被用來(lái)構(gòu)建一個(gè)連接狀態(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)建一個(gè) renderer.js 文件,添加事件監(jiān)聽(tīng)器到 'online' 和 'offline' 窗口 中. 事件處理器設(shè)置基于 navigator.onLine 的結(jié)果到 <strong id='status'> element 的內(nèi)容中。

const updateOnlineStatus = () => {
  document.getElementById('status').innerHTML = navigator.onLine ? 'online' : 'offline'
}

window.addEventListener('online', updateOnlineStatus)
window.addEventListener('offline', updateOnlineStatus)

updateOnlineStatus()

最后,創(chuàng)建一個(gè) main.js 文件用來(lái)給主進(jìn)程創(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()
  }
})

啟動(dòng) Electron 應(yīng)用程序后,您應(yīng)該能看到通知:


注意:如果你需要將連接狀態(tài)發(fā)送給主流程,請(qǐng)使用 IPC 渲染器 API。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)