fix(landing): masque « Ouvrir dans l'application » dans l'app native (#103) #117

Merged
kyuno merged 1 commit from fix/landing-hide-open-app-in-native into main 2026-09-08 04:48:45 +02:00
Owner

Contexte

Closes #103.

isMobile = isAndroidPhoneBrowser() (lib/mobile-app-redirect.ts) est une détection d'user-agent : la WebView Capacitor contient « Android »/« Mobile », donc le bouton « Ouvrir dans l'application » de la landing page s'affichait aussi dans l'app packagée — où le taper tente de relancer l'app via le scheme batchcooking://open, échoue, et retombe sur /telecharger.

Changements (apps/web/src/pages/landing/LandingPage.tsx)

  • Nouveau canOfferApp = isMobile && !Capacitor.isNativePlatform() — « un navigateur téléphone où pousser l'app native a du sens ». Gate le bouton « Ouvrir dans l'application » et la rétrogradation de « Créer un compte » en secondaire.
  • Le lien /telecharger (variante desktop) gagne aussi && !Capacitor.isNativePlatform() : sur tablette la WebView Capacitor peut ne pas avoir « Mobile » dans son UA, donc !isMobile ne suffisait pas.

Aucun changement sur le web : Capacitor.isNativePlatform() y est toujours false, donc canOfferApp === isMobile — comportement identique.

Tests

  • landing.feature (navigateur téléphone spoofé + desktop) revérifiée → 7/7. Le chemin natif n'a pas de couture de test depuis un run web (limitation déjà documentée, cf. app-settings-page.cy.ts / useAppUpdateCheck).
  • pnpm lint + pnpm --filter web build OK.

🤖 Generated with Claude Code

## Contexte `Closes #103`. `isMobile = isAndroidPhoneBrowser()` (`lib/mobile-app-redirect.ts`) est une détection d'user-agent : la WebView Capacitor contient « Android »/« Mobile », donc le bouton « Ouvrir dans l'application » de la landing page s'affichait aussi **dans** l'app packagée — où le taper tente de relancer l'app via le scheme `batchcooking://open`, échoue, et retombe sur `/telecharger`. ## Changements (`apps/web/src/pages/landing/LandingPage.tsx`) - Nouveau `canOfferApp = isMobile && !Capacitor.isNativePlatform()` — « un navigateur *téléphone* où pousser l'app native a du sens ». Gate le bouton « Ouvrir dans l'application » et la rétrogradation de « Créer un compte » en secondaire. - Le lien `/telecharger` (variante desktop) gagne aussi `&& !Capacitor.isNativePlatform()` : sur tablette la WebView Capacitor peut ne pas avoir « Mobile » dans son UA, donc `!isMobile` ne suffisait pas. Aucun changement sur le web : `Capacitor.isNativePlatform()` y est toujours `false`, donc `canOfferApp === isMobile` — comportement identique. ## Tests - `landing.feature` (navigateur téléphone spoofé + desktop) revérifiée → **7/7**. Le chemin natif n'a pas de couture de test depuis un run web (limitation déjà documentée, cf. `app-settings-page.cy.ts` / `useAppUpdateCheck`). - `pnpm lint` + `pnpm --filter web build` OK. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
kyuno added the
bug
planned
Low
labels 2026-09-08 04:16:04 +02:00
kyuno added 1 commit 2026-09-08 04:16:05 +02:00
fix(landing): masque « Ouvrir dans l'application » dans l'app native (#103)
All checks were successful
CI / lint (push) Successful in 2m49s
CI / build (push) Successful in 4m5s
CI / intent-service-test (push) Successful in 6m9s
CI / e2e (push) Successful in 10m31s
CI / test (push) Successful in 29m20s
CI / build-android (push) Has been skipped
126cd840f5
`isMobile = isAndroidPhoneBrowser()` est une détection d'user-agent : la
WebView Capacitor contient « Android »/« Mobile », donc le bouton
« Ouvrir dans l'application » s'affichait aussi *dans* l'app packagée — où
le taper tente de relancer l'app via le scheme, échoue, et retombe sur
`/telecharger`.

- Nouveau `canOfferApp = isMobile && !Capacitor.isNativePlatform()` — « un
  navigateur *téléphone* où pousser l'app native a du sens ». Gate le
  bouton et la rétrogradation de « Créer un compte » en secondaire.
- Le lien `/telecharger` (variante desktop) gagne aussi `&&
  !Capacitor.isNativePlatform()` : sur tablette la WebView Capacitor peut
  ne pas avoir « Mobile » dans son UA, donc `!isMobile` ne suffisait pas.

Aucun changement sur le web (`Capacitor.isNativePlatform()` y est toujours
`false`, donc `canOfferApp === isMobile`) — `landing.feature`
(navigateur téléphone + desktop) revérifiée, 7/7. Le chemin natif n'a pas
de couture de test depuis un run web (limitation déjà documentée, cf.
`app-settings-page.cy.ts`).

Closes #103

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
kyuno merged commit 6828809081 into main 2026-09-08 04:48:45 +02:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: kyuno/batchCooking#117
No description provided.