Cliente nativo: enlaces externos al navegador, micrófono para notas de voz, descargas
La ventana se crea ahora en Rust (lib.rs) para poder: - Inyectar un script que manda los enlaces EXTERNOS (Drive, docs ajenos, target=_blank, window.open) al navegador del sistema, dejando dentro la navegación del propio servidor y el login por Authentik (que redirige a otro dominio y vuelve). - Permitir descargas (entregables/exportaciones) con el diálogo nativo de guardado. - SERVER_URL centralizado (antes en tauri.conf.json app.windows[0].url). macOS: Info.plist con NSMicrophoneUsageDescription/NSCameraUsageDescription y Entitlements.plist (audio-input, cámara, red, allow-jit) → las notas de voz y los adjuntos de foto/video piden permiso y funcionan. Referenciados en bundle.macOS. Se conserva el tray, cerrar=ocultar y el autostart. Verificado: build de macOS OK (.app + .dmg de 3,8 MB, icono del logo, textos de permiso fusionados en Info.plist). Los instaladores de Windows (.exe) y macOS (.dmg universal) los sigue produciendo GitHub Actions (.github/workflows/build.yml) en cada tag de versión. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Este commit está contenido en:
18
README.md
18
README.md
@@ -8,8 +8,16 @@ que carga el servidor de Labstream OS que corre en el NAS
|
||||
No contiene la app: el backend, la base de datos, OnlyOffice, etc. siguen en el
|
||||
NAS. Esto solo le da al equipo un ícono y una ventana propia en Windows y Mac.
|
||||
|
||||
El servidor objetivo se configura en `src-tauri/tauri.conf.json` →
|
||||
`app.windows[0].url`.
|
||||
Además del ícono y la ventana, el envoltorio añade comportamiento de cliente nativo:
|
||||
|
||||
- **Enlaces externos** (Drive, documentos ajenos…) abren en el **navegador del sistema**;
|
||||
la navegación del propio servidor y el **login por Authentik** se quedan dentro.
|
||||
- **Notas de voz / cámara**: pide permiso de micrófono y cámara (entitlements de macOS).
|
||||
- **Descargas** (entregables, exportaciones) con el diálogo nativo de guardado.
|
||||
- **Bandeja del sistema**: cerrar la ventana la oculta; la app sigue notificando.
|
||||
- **Arranque automático** al iniciar sesión y **sesión persistente** (no re-loguea).
|
||||
|
||||
El servidor objetivo se configura en `src-tauri/src/lib.rs` → constante `SERVER_URL`.
|
||||
|
||||
Salidas:
|
||||
|
||||
@@ -152,11 +160,13 @@ labstream-desktop/
|
||||
├── dist/index.html pantalla de respaldo (requerida por Tauri)
|
||||
├── package.json scripts de build
|
||||
├── src-tauri/
|
||||
│ ├── tauri.conf.json nombre, versión, URL del servidor, instaladores
|
||||
│ ├── tauri.conf.json nombre, versión, iconos, instaladores, entitlements
|
||||
│ ├── Cargo.toml dependencias Rust + versión
|
||||
│ ├── Info.plist textos de permiso (micrófono/cámara) en macOS
|
||||
│ ├── Entitlements.plist entitlements de macOS (audio-input, cámara, red)
|
||||
│ ├── build.rs
|
||||
│ ├── capabilities/default.json
|
||||
│ ├── icons/ se generan desde app-icon.png
|
||||
│ └── src/{main.rs,lib.rs}
|
||||
│ └── src/{main.rs,lib.rs} lib.rs crea la ventana + SERVER_URL + tray
|
||||
└── .github/workflows/build.yml build automático de .exe (Windows) y .dmg (macOS)
|
||||
```
|
||||
|
||||
Referencia en una nueva incidencia
Block a user