697a219bcb
* feat: add bluetooth pairing handler * Update docs/api/session.md Co-authored-by: Charles Kerr <charles@charleskerr.com> * Update docs/api/session.md Co-authored-by: Charles Kerr <charles@charleskerr.com> * docs: update based on review * Apply suggestions from code review Co-authored-by: Erick Zhao <erick@hotmail.ca> Co-authored-by: Charles Kerr <charles@charleskerr.com> * chore: update docs per review * chore: cleanup callback per review Co-authored-by: Charles Kerr <charles@charleskerr.com> Co-authored-by: Erick Zhao <erick@hotmail.ca>
45 lines
1.2 KiB
JavaScript
45 lines
1.2 KiB
JavaScript
const {app, BrowserWindow, ipcMain} = require('electron')
|
|
const path = require('path')
|
|
|
|
function createWindow () {
|
|
const mainWindow = new BrowserWindow({
|
|
width: 800,
|
|
height: 600,
|
|
webPreferences: {
|
|
preload: path.join(__dirname, 'preload.js')
|
|
}
|
|
})
|
|
|
|
mainWindow.webContents.on('select-bluetooth-device', (event, deviceList, callback) => {
|
|
event.preventDefault()
|
|
if (deviceList && deviceList.length > 0) {
|
|
callback(deviceList[0].deviceId)
|
|
}
|
|
})
|
|
|
|
// Listen for a message from the renderer to get the response for the Bluetooth pairing.
|
|
ipcMain.on('bluetooth-pairing-response', (event, response) => {
|
|
bluetoothPinCallback(response)
|
|
})
|
|
|
|
mainWindow.webContents.session.setBluetoothPairingHandler((details, callback) => {
|
|
|
|
bluetoothPinCallback = callback
|
|
// Send a message to the renderer to prompt the user to confirm the pairing.
|
|
mainWindow.webContents.send('bluetooth-pairing-request', details)
|
|
})
|
|
|
|
mainWindow.loadFile('index.html')
|
|
}
|
|
|
|
app.whenReady().then(() => {
|
|
createWindow()
|
|
|
|
app.on('activate', function () {
|
|
if (BrowserWindow.getAllWindows().length === 0) createWindow()
|
|
})
|
|
})
|
|
|
|
app.on('window-all-closed', function () {
|
|
if (process.platform !== 'darwin') app.quit()
|
|
})
|