Aller au contenu
WebViewGold Du vibe coding à l'App Store
Français
Obtenir WebViewGold

ChatGPT & Codex + gestion des liens

Liens externes et gestion des URL dans votre app ChatGPT & Codex

Sur le web, un lien vers Stripe, la connexion Google, WhatsApp ou votre centre d'aide fonctionne tout simplement. Dans une app, chaque lien a besoin d'une destination : l'app elle-même, un onglet de navigateur intégré, Safari ou Chrome, ou une autre app comme Mail, Téléphone ou WhatsApp. Si vous vous trompez, les utilisateurs se retrouvent bloqués sur une page tierce sans bouton retour, connectés au mauvais endroit, ou en train de payer dans un navigateur pendant que l'app attend.

Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.

  • Garantie d'approbation – ou remboursement sous 14 jours
  • Aucun codage requis
  • Paiement unique, mises à jour gratuites
  • Support humain 24/7
  • Conçu en Allemagne depuis 2014 · ISO 27001

Où chaque type de lien doit s'ouvrir

LienMeilleure destinationPourquoiComment dans WebViewGold
Votre propre domaineL'app (WebView principale)C'est votre appLes liens internes restent dans l'app
Stripe Checkout, liens de paiement, 3-D Secure, PayPalL'app (WebView principale)L'URL de succès revient sur votre domaine avec la session intacteGardez les liens externes dans l'app (option 0), ou listez ces hôtes comme exceptions à ne jamais ouvrir dans le navigateur (safariblacklist, BROWSER_BLACKLIST)
Connexion Google et FacebookSocial Login HelperGoogle bloque les WebViews intégrées ; l'assistant exécute cette étape dans une fenêtre de connexion acceptée, puis revientgoogle_login_helper_triggers / GOOGLE_LOGIN_HELPER_TRIGGERS ; Android propose aussi le préfixe googlelogin:// pour un Chrome Custom Tab
CGU, centre d'aide, documentation, blog sur d'autres domainesOnglet intégréBarre d'adresse et bouton de fermeture ; l'app reste en dessousalwaysOpenInInAppTab / ALWAYS_OPEN_IN_INAPP_TAB, ou target="_blank" avec l'option des liens spéciaux réglée sur 1
WhatsApp (wa.me), Instagram, YouTube, X, TikTokLeur app ou le navigateur systèmeLes utilisateurs y sont connectés, pas dans votre WebViewsafariwhitelist / BROWSER_WHITELIST
mailto:, tel:, sms:Mail, Téléphone, MessagesSchémas système, gérés par le téléphoneUtilisez des liens standard ; WebViewGold les transmet au système
Liens App Store et Google PlayL'app du storeMises à jour, notes, vos autres appsapps.apple.com et play.google.com dans la liste des hôtes toujours externes

Prompt pour ChatGPT & Codex

Collez ceci dans ChatGPT & Codex pour implémenter la partie app web. Vérifiez le résultat, publiez, puis testez dans l'app WebViewGold.

Prompt pour ChatGPT ou Codex
Cette app web tourne dans le wrapper natif WebViewGold (son user agent contient "WebViewGold"). Ouvrez une pull request qui :
1. affiche chaque lien des réponses de l'IA (markdown, citations, sources) avec target="_blank" rel="noopener noreferrer", pour que l'app puisse l'afficher dans son onglet de navigateur intégré ;
2. ne transforme jamais les liens vers notre propre domaine en nouveaux onglets ;
3. lance le paiement et la connexion en naviguant dans la même fenêtre (window.location.href ou redirections serveur) au lieu de window.open ;
4. affiche les actions de contact sous forme de liens mailto:, tel: et https://wa.me/ ;
5. masque les liens de paiement des abonnements numériques quand le user agent contient "WebViewGold" ;
6. ajoute une liste de tous les hôtes externes dans docs/links.md et la politique des liens dans AGENTS.md.

Excellent travail! Je n'ai jamais codé quoi que ce soit, mais j'ai réussi à travailler avec cela. Facile et rapide! Avec une grande aide des créateurs!

Lucas Dubois · CodeCanyon

Trois classes de liens et les réglages qui les contrôlent

Liens internes

Même domaine que l'hôte configuré. Ils se chargent dans la WebView principale, c'est pourquoi l'URL de départ doit être votre domaine de production. Testez explicitement les sous-domaines que vous utilisez pour l'authentification, le paiement ou l'API : qu'ils comptent comme internes ou non dépend de l'hôte que vous avez configuré.

Liens externes

Tous les autres domaines. L'option 0 les garde dans l'app. iOS peut les envoyer vers Safari avec externalLinkHandlingOptions = 2 ; Android ajoute 1 (onglet intégré) et 2 (navigateur système) pour EXTERNAL_LINK_HANDLING_OPTIONS. Les listes par hôte priment sur le comportement par défaut : safariwhitelist, safariblacklist et alwaysOpenInInAppTab sur iOS, BROWSER_WHITELIST, BROWSER_BLACKLIST et ALWAYS_OPEN_IN_INAPP_TAB sur Android.

Liens spéciaux

Les liens avec target="_blank" (sur Android, aussi les liens qui se terminent par #). specialLinkHandlingOptions et SPECIAL_LINK_HANDLING_OPTIONS : 0 WebView principale, 1 onglet intégré, 2 navigateur. Sur Android, un préfixe newtab: impose ce comportement à un lien précis. Pour les liens à la fois spéciaux et externes, Android suit le réglage des liens spéciaux, tandis que sur iOS externalLinkHandlingOptions = 2 les envoie quand même vers Safari : gardez-le à 0 si vous voulez l'onglet intégré.

Configurer la gestion des liens d'une app ChatGPT & Codex

Environ 15 minutes avec un inventaire des liens, puis un test sur de vrais téléphones.

  1. Listez chaque lien sortant de votre app ChatGPT & Codex

    Cliquez partout ou cherchez dans le code : paiement et portail de facturation, fournisseurs de connexion, profils sociaux, chat de support, pages légales, badges des stores, liens mailto: et tel:, cartes. Notez la destination de chacun à l'aide du tableau ci-dessus.

  2. Définissez le comportement par défaut

    Pour la plupart des apps : gardez les liens externes dans l'app (option 0 sur les deux plateformes) et routez les exceptions. Envoyer tous les liens externes vers le navigateur casse les redirections de paiement et de connexion qui doivent revenir dans l'app.

  3. Ajoutez les exceptions

    Les apps sociales, WhatsApp et les liens des stores dans safariwhitelist (iOS) et BROWSER_WHITELIST (Android) ; les CGU, la documentation et le centre d'aide dans alwaysOpenInInAppTab et ALWAYS_OPEN_IN_INAPP_TAB ; les hôtes de paiement et d'authentification dans les listes « jamais dans le navigateur » si votre comportement par défaut est le navigateur. Saisissez les hôtes exactement comme dans vos liens, sans https://.

  4. Activez l'assistant de connexion

    Ajoutez https://accounts.google.com à google_login_helper_triggers (iOS) et GOOGLE_LOGIN_HELPER_TRIGGERS (Android). N'envoyez pas simplement Google vers Safari : la session se retrouverait dans Safari, pas dans l'app (la solution à l'erreur disallowed_useragent).

  5. Traitez les achats numériques à part

    Stripe pour des biens physiques et des services dans le monde réel peut rester dans l'app. Pour les abonnements ou les crédits utilisés dans l'app, Apple attend l'achat intégré (guideline 3.1.1) et Google attend Play Billing, hors exceptions régionales : masquez donc ce paiement dans l'app (Stripe ou achat intégré).

  6. Testez chaque type de lien

    Chargez https://www.webviewgold.com/demo/testlinks.php comme URL de départ temporaire pour voir comment se comporte chaque type de lien, puis touchez chaque lien sortant de votre vraie app sur un iPhone et sur un téléphone Android, paiement test complet compris.

Une configuration de départ typique

Valeurs uniquement : gardez la syntaxe qu'utilisent déjà les lignes de vos fichiers Config.swift et Config.java. Sur Android, ALWAYS_OPEN_IN_INAPP_TAB attend des préfixes d'URL ; les autres listes attendent des hôtes.

text
// Config.swift (iOS)
externalLinkHandlingOptions  = 0     // les liens externes restent dans l'app
specialLinkHandlingOptions   = 1     // target="_blank" ouvre l'onglet intégré
safariwhitelist              = ["wa.me", "api.whatsapp.com", "www.instagram.com", "apps.apple.com"]
alwaysOpenInInAppTab         = ["help.yourdomain.com", "docs.yourdomain.com"]
google_login_helper_triggers = ["https://accounts.google.com"]

// Config.java (Android)
EXTERNAL_LINK_HANDLING_OPTIONS = 0
SPECIAL_LINK_HANDLING_OPTIONS  = 1
BROWSER_WHITELIST              = ["wa.me", "api.whatsapp.com", "www.instagram.com", "play.google.com"]
ALWAYS_OPEN_IN_INAPP_TAB       = {"https://help.yourdomain.com", "https://docs.yourdomain.com"}
GOOGLE_LOGIN_HELPER_TRIGGERS   = {"https://accounts.google.com"}

Les bugs de liens que livrent les apps vibe-codées

  • Le paiement dans le navigateur. Stripe s'ouvre dans Safari ou Chrome, le paiement réussit, la page de succès se charge dans le navigateur et l'app affiche toujours l'état non payé. Gardez le paiement dans l'app, ou ramenez l'URL de retour dans l'app grâce aux Universal Links (voir le guide des deep links).
  • Le paiement dans une pop-up. Un code qui ouvre le paiement avec window.open ou target="_blank" en fait un lien spécial : la page de succès se charge alors dans l'onglet intégré au lieu de l'app. Naviguez plutôt avec window.location.href.
  • Un lien vers le portail de facturation pour des offres numériques dans l'app iOS. Hors exceptions régionales, Apple peut y voir une incitation à contourner l'achat intégré (guideline 3.1.1). Ne l'affichez que sur le web.
  • Une page tierce sans retour possible. Les iPhone n'ont pas de bouton retour. Tout ce qui n'est pas votre app a sa place dans l'onglet intégré ou dans une autre app.
  • Des liens WhatsApp, Instagram ou de cartes qui chargent leur site web dans l'app, souvent derrière un mur de connexion. Envoyez ces hôtes au système pour que la vraie app s'ouvre.
  • Tout s'ouvre dans Safari. Une app qui ne cesse de se quitter elle-même ressemble à un favori, et c'est l'impression qui se cache derrière de nombreux refus au titre de la guideline 4.2.

Questions fréquentes

Pourquoi mon paiement Stripe perd-il la session dans l'app ?

Généralement parce que le paiement s'est ouvert dans Safari ou Chrome : le paiement fonctionne, mais l'URL de succès se charge dans le navigateur, où l'utilisateur n'est pas connecté. Gardez checkout.stripe.com dans la WebView principale (option 0 pour les liens externes) et naviguez avec window.location.href, pour que la redirection revienne dans l'app.

Les liens mailto:, tel: et WhatsApp fonctionnent-ils dans l'app ?

Les liens mailto:, tel: et sms: sont transmis à Mail, à l'app Téléphone et à Messages. Pour WhatsApp, ajoutez wa.me et api.whatsapp.com à la liste des hôtes toujours externes (safariwhitelist, BROWSER_WHITELIST), pour que l'app WhatsApp s'ouvre au lieu du site WhatsApp dans votre app. Testez chacun sur un vrai téléphone.

Qu'est-ce que l'onglet intégré ?

Une vue de navigateur qui s'ouvre par-dessus votre app, avec une barre d'adresse et des boutons de navigation. Les utilisateurs lisent la page, puis la ferment pour revenir exactement là où ils étaient. C'est le bon endroit pour les CGU, les articles d'aide et les autres contenus tiers.

Puis-je ouvrir tous les liens externes dans Safari ou Chrome ?

Vous le pouvez (externalLinkHandlingOptions = 2 sur iOS, EXTERNAL_LINK_HANDLING_OPTIONS = 2 sur Android), mais ajoutez alors chaque hôte de paiement, de connexion et d'API aux exceptions « jamais dans le navigateur » (safariblacklist, BROWSER_BLACKLIST), sinon les redirections destinées à votre app atterriront dans le navigateur.

L'app iOS peut-elle renvoyer vers ma page de tarifs web ?

Pour les biens numériques, Apple n'autorise généralement pas les boutons ou les liens vers des achats externes. Des exceptions existent pour certaines régions, comme la vitrine américaine après la décision de justice de 2025 et les conditions alternatives dans l'UE, et elles évoluent. Vérifiez le texte actuel de la guideline 3.1.1 dans App Store Connect avant de vous appuyer sur l'une d'elles.

Trois façons de mettre votre app dans les stores

Même résultat, charge de travail différente de votre côté. Les trois formules incluent la garantie d'approbation et le support humain 24/7.

Faites-le vous-même

$109 par plateforme, paiement unique

La licence WebViewGold : un projet Xcode ou Android Studio prêt à l'emploi. Collez votre URL, définissez le nom et l'icône, activez les fonctionnalités, compilez et soumettez. Mises à jour gratuites à vie.

Voir les offres sur la page principale

Full Service

$698 par plateforme $798

Envoyez-nous votre URL et votre icône. Notre équipe configure, compile et livre votre app sous 72 heures, en marque blanche, projets sources inclus. Les deux plateformes pour $1,158.

Détails du Full Service Propulsé par WeSetupYourWebViewApp

Prix Soldes d'hiver valables jusqu'au 31 décembre 2026.

Prêt à publier votre app ChatGPT & Codex ?

Garantie d'approbation App Store & Google Play – ou remboursement sous 14 jours

Vous préférez déléguer ? Full Service : nous configurons, compilons et livrons sous 72 heures, dès $698 par plateforme. Des questions ? Chattez avec nous 24/7.

Les remboursements sont accordés aux conditions indiquées dans notre FAQ : un refus non lié au contenu par Apple et/ou Google, demandé dans les 14 jours suivant l'achat.