Pwa support, maybe

This commit is contained in:
2026-07-21 15:13:16 +10:00
parent 49cecad06d
commit ee25b9a94d
8 changed files with 109 additions and 2 deletions

View File

@@ -29,12 +29,21 @@ The default app is the installable messaging PWA. Other useful commands:
npm run build # packages, declarations, demo, and service worker
npm test # core transaction tests
npm run test:e2e # desktop and mobile Playwright projects
npm run pwa:preview # production PWA on every local network interface
npm run electron # build and launch the Electron host
npm run cap:sync # build and synchronize iOS and Android projects
```
Native projects live under `apps/capacitor/ios` and `apps/capacitor/android`. Open or run them from `apps/capacitor` with `npx cap open ios`, `npx cap open android`, or `npx cap run <platform>`.
### Test the installed iOS PWA
Build and serve the production app with `npm run pwa:preview`, expose it through an HTTPS URL, and open that URL on the iPhone. Safari requires a secure context for the service worker; a plain LAN `http://` address is not sufficient. Choose **Share → Add to Home Screen**, then launch **NVR Messenger** from its Home Screen icon.
The Navigation Lab reports `Standalone`, `ready`, and `App reserved` when the correct environment is active. Open a conversation and drag from the extreme left edge. The “Leading-edge touches claimed” counter should increment while the router renders its live predictive-back view.
An installed web app cannot access `WKWebView.allowsBackForwardNavigationGestures`. The demo therefore reserves leading-edge touch sequences at the web-content boundary as an iOS standalone-only safeguard. Capacitor remains the deterministic option when native-level gesture suppression is required.
## Minimal integration
```ts