5a98ae4d34
- desktop/main.js: grant media (camera/mic), display-capture, notifications, clipboard, fullscreen, pointerLock for the app origin (Electron denies these by default, which silently broke meetings' camera/mic). Adds setPermissionRequestHandler + setPermissionCheckHandler on the app session. - Clicking a notification now raises + focuses the window: preload exposes bizConnectNative.focusApp(), main handles 'focus-window' IPC, and the web notify() onclick calls it when running in the desktop shell. (home.html build batch16) - CLIENTS.md: Phase D — inline-reply notifications (Windows Toast RemoteInput / Android RemoteInput / iOS UNTextInputNotificationAction) queued right after packaging. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
14 lines
753 B
JavaScript
14 lines
753 B
JavaScript
// Minimal, safe bridge into the web UI. Runs with contextIsolation, so it only exposes a
|
|
// frozen marker the web app can feature-detect against (e.g. to hide the PWA install prompt
|
|
// or prefer native push). No Node APIs are exposed to page JS.
|
|
const { contextBridge, ipcRenderer } = require('electron');
|
|
|
|
contextBridge.exposeInMainWorld('__NATIVE__', 'desktop');
|
|
contextBridge.exposeInMainWorld('bizConnectNative', Object.freeze({
|
|
platform: 'desktop',
|
|
version: process.env.npm_package_version || '0.1.0',
|
|
// Bring the app window to the foreground (e.g. when a notification is clicked) — the web
|
|
// Notification's window.focus() can't raise an Electron window; the main process must.
|
|
focusApp: () => ipcRenderer.send('focus-window'),
|
|
}));
|