Partager vers votre app ChatGPT & Codex : liens, textes et photos depuis n'importe quelle autre app
Un outil de favoris, une boîte à recettes ou un moodboard ne sert vraiment que si l'enregistrement se fait en un tap. Avec WebViewGold, votre app ChatGPT & Codex apparaît dans la feuille de partage d'iOS et d'Android, et tout ce que l'utilisateur partage (un lien, un extrait de texte, une photo) arrive dans votre app web sous la forme de la variable JavaScript sharedData. Votre code décide de la suite : préremplir un formulaire, l'enregistrer dans votre backend ou ouvrir un éditeur.
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
9:41
CChatGPT & Codex
Extension de partageDésormais dans votre poche
App Store · Google Play Approuvée
Comment fonctionne la réception de partages
Extension de partage iOS
Les utilisateurs touchent Partager dans Safari, Photos ou une autre app et choisissent la vôtre. WebViewGold transmet le contenu à votre app web dans la variable JavaScript sharedData : textes et liens en texte brut, images sous forme de chaînes Base64.
Intent de partage Android
Décommentez les filtres d'intent préparés dans AndroidManifest.xml (ACTION_SEND pour text/plain et image/*, ACTION_SEND_MULTIPLE pour plusieurs images) et l'icône de l'app apparaît dans la boîte de dialogue de partage d'Android. Même variable, même traitement : sharedData.
Votre app web décide
Vérifiez sharedData au chargement de la page, distinguez liens, textes et images, et dirigez l'utilisateur vers un écran d'enregistrement prérempli. Rien n'est enregistré tant que votre propre code ne l'envoie pas à Votre propre API ou des fonctions serverless : l'utilisateur garde la main.
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
Prompt pour Codex : Implémentez un parcours de cible de partage pour l'app native WebViewGold et ouvrez une pull request. Quand navigator.userAgent contient mon token WebViewGold personnalisé, lisez la variable globale sharedData au chargement de la page puis de nouveau après une seconde ; classez-la comme lien (commence par http), image (longue chaîne Base64, éventuellement avec un préfixe data:image) ou texte, et ignorez les valeurs déjà traitées dans cette session. Naviguez vers une page /save qui affiche un aperçu de l'élément et propose Enregistrer et Annuler. Ajoutez un endpoint serveur POST /api/saves qui exige l'utilisateur connecté, récupère les titres des liens côté serveur avec un délai maximal, stocke les images comme fichiers avec notre stockage existant et écrit un enregistrement saves. Ajoutez une option Résumer facultative qui utilise notre intégration OpenAI existante côté serveur et enregistre le résumé avec l'élément une fois que l'utilisateur l'a confirmé. Ajoutez des tests unitaires pour le classement et une section AGENTS.md décrivant le contrat sharedData. Ne touchez jamais à sharedData dans les navigateurs classiques.
Avec une bonne version optimisée de votre application Web, vous pouvez avoir une superbe application mobile en quelques minutes. De plus, le service client est très agréable et très utile! Je ne peux que recommander WebViewGold :-)
Julian Koch · Co-fondateur de DuelDonkey · CodeCanyon
Ce que les gens partagent vers des apps comme la vôtre
Une cible de partage mérite sa place quand un seul tap enregistre ce que l'utilisateur devrait sinon copier, changer d'app et coller. Les usages typiques :
À lire plus tard et favoris
Partagez un article depuis Safari ou Chrome : l'app récupère le titre et l'image d'aperçu côté serveur, l'utilisateur ajoute un tag et touche Enregistrer.
Recettes, lieux, produits
Un lien de recette, un restaurant depuis une app de cartes, une page produit : enregistrés dans une collection, un plan de voyage ou une liste d'envies plutôt que dans un fichier de notes en désordre.
Des photos dans un flux de travail
La photo d'un reçu dans un suivi de dépenses, une capture d'écran dans un rapport de bug, la photo d'une pièce dans un moodboard ou un inventaire. L'image arrive en Base64, prête à être envoyée.
Offres d'emploi et prospects
Partagez une offre d'emploi ou un lien de profil vers un tracker ou un CRM et arrivez sur un formulaire « Nouvelle entrée » prérempli, avec l'URL déjà analysée.
Citations et extraits
Un texte surligné dans n'importe quelle app devient une note, une fiche de révision ou un prompt pour votre fonctionnalité d'IA, avec le lien source joint quand le texte partagé en contient un.
Ajouter une cible de partage à une app ChatGPT & Codex
Environ une heure, surtout pour l'écran d'enregistrement de votre app web.
Choisissez une seule action pour le partage
Décidez de ce que fait un partage dans votre app ChatGPT & Codex : enregistrer un lien, joindre une photo, commencer une note. Une action claire convertit mieux qu'un menu d'options.
iOS : activez l'extension de partage
Activez l'extension de partage dans le projet Xcode WebViewGold en suivant la marche à suivre (Documentation iOS), puis installez le build sur un vrai iPhone. La feuille de partage ne liste que les extensions des apps installées : le simulateur n'est donc pas un bon test.
Android : décommentez les filtres d'intent
Dans AndroidManifest.xml, ne gardez que les filtres que vous traitez vraiment : text/plain pour les liens et le texte, image/* pour une photo, SEND_MULTIPLE pour plusieurs (Documentation Android). Une cible de partage qui accepte des images mais les ignore fait mauvaise impression dès le départ.
Lisez sharedData dans ChatGPT & Codex
Vérifiez typeof sharedData !== "undefined" au chargement, puis une nouvelle fois après un court délai. Les valeurs qui commencent par http sont des liens ; les longues chaînes Base64 sont des images (les données JPEG commencent par /9j/, les PNG par iVBORw0KGgo) ; tout le reste est du texte, qui contient parfois une URL.
Conservez le brouillon pendant la connexion
Si l'utilisateur n'est pas connecté, stockez l'élément partagé dans sessionStorage, faites-le passer par votre parcours de connexion et restaurez ensuite l'écran d'enregistrement. Ne perdez jamais un partage en silence.
Enregistrez et confirmez
Décodez les images en Blob, redimensionnez-les et envoyez-les, récupérez les titres des liens sur le serveur et enregistrez l'élément dans Votre propre API ou des fonctions serverless, puis affichez un état de réussite clair (un appel successhaptic:// tombe juste ici).
Un gestionnaire sharedData pour votre app web
Indépendant de tout framework ; appelez checkSharedContent() une fois votre app montée. Remplacez YourAppToken par le user agent personnalisé défini dans Config.swift (useragent_iphone, useragent_ipad) et Config.java (USER_AGENT).
javascript
var inApp = navigator.userAgent.indexOf("YourAppToken") !== -1;
function classifyShared(raw) {
var value = String(raw).trim();
var b64 = value.replace(/^data:image\/[a-z+]+;base64,/i, "");
if (/^https?:\/\//i.test(value)) return { kind: "link", url: value };
if (b64.length > 1000 && /^[A-Za-z0-9+\/=\s]+$/.test(b64.slice(0, 4000))) {
return { kind: "image", base64: b64, mime: b64.indexOf("iVBORw0KGgo") === 0 ? "image/png" : "image/jpeg" };
}
var link = value.match(/https?:\/\/\S+/);
return { kind: "text", text: value, url: link ? link[0] : null };
}
function base64ToBlob(b64, mime) {
var bin = atob(b64.replace(/\s/g, ""));
var bytes = new Uint8Array(bin.length);
for (var i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
return new Blob([bytes], { type: mime });
}
function checkSharedContent() {
if (!inApp || typeof sharedData === "undefined" || !sharedData) return false;
var fingerprint = String(sharedData).length + ":" + String(sharedData).slice(0, 64);
if (sessionStorage.getItem("lastShare") === fingerprint) return false; // déjà traité
sessionStorage.setItem("lastShare", fingerprint);
sessionStorage.setItem("pendingShare", JSON.stringify(classifyShared(sharedData)));
window.location.href = "/save"; // votre écran d'enregistrement prérempli
return true;
}
window.addEventListener("load", function () {
if (!checkSharedContent()) setTimeout(checkSharedContent, 1000);
});
Ce que regardent les examinateurs
Une cible de partage fait partie des intégrations natives qu'un onglet Safari ne peut pas offrir sur iOS, ce qui en fait un argument solide pour la guideline 4.2. Quelques règles l'accompagnent.
4.2
Fonctionnalités minimales
Montrez le parcours de partage sur une capture d'écran et mentionnez-le dans les notes de validation, en anglais pour l'examinateur (« Share a link from Safari to save it »). Les examinateurs ne prennent en compte que les fonctionnalités qu'ils trouvent.
4.4
Extensions
Les extensions doivent offrir une vraie fonctionnalité, être décrites fidèlement dans vos textes marketing et ne contenir ni marketing, ni publicité, ni achats intégrés. Gardez le parcours de partage sous la forme d'une simple action d'enregistrement.
2.5.16
En lien avec votre app
Les extensions doivent se rapporter au contenu et aux fonctionnalités de l'app. Une app de recettes qui accepte des liens de recettes est cohérente ; une cible de partage qui ouvre simplement la page d'accueil ne l'est pas.
5.1.1
Les données que vous recevez
Les photos et les liens partagés peuvent contenir des données personnelles. N'envoyez que ce que l'utilisateur a confirmé, décrivez-le dans votre politique de confidentialité et déclarez-le dans App Privacy (photos, contenu utilisateur) ainsi que dans le formulaire Sécurité des données de Google Play.
Questions fréquentes
L'app peut-elle recevoir des partages sur iOS et sur Android ?
Oui. iOS utilise une extension de partage et Android des intents de partage ; dans les deux cas, WebViewGold transmet le contenu à votre app web dans la même variable JavaScript, sharedData : un seul gestionnaire couvre donc les deux plateformes.
Quels types de contenu les utilisateurs peuvent-ils partager vers l'app ?
Du texte et des liens, ainsi que des images, qui arrivent sous forme de chaînes Base64. Android dispose aussi d'un filtre d'intent préparé pour plusieurs images à la fois. Les autres types de fichiers, comme les PDF, ne font pas partie de l'API documentée.
Une app web ou une PWA peut-elle le faire sans le wrapper natif ?
Sur Android, une PWA installée peut s'enregistrer comme cible de partage via la Web Share Target API dans les navigateurs basés sur Chromium. Sur iOS, Safari n'offre aucun équivalent pour les apps web : une extension de partage native est donc le moyen d'apparaître dans la feuille de partage de l'iPhone.
Que se passe-t-il si l'utilisateur n'est pas connecté au moment du partage ?
Gardez l'élément partagé dans sessionStorage, faites passer l'utilisateur par la connexion et ramenez-le à l'écran d'enregistrement avec le contenu toujours là. Perdre un partage après la connexion est le bug le plus fréquent de ce parcours.
Une extension de partage garantit-elle l'approbation au titre de la guideline 4.2 ?
Aucune fonctionnalité ne le fait à elle seule. C'est une capacité native forte et visible ; combinée aux notifications push, à la gestion hors ligne et à une mise en page digne d'une app, elle montre que votre app ChatGPT & Codex est plus qu'un site web.
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.
Ni Mac, ni Xcode, ni Android Studio : configurez dans le navigateur, nous compilons les deux apps dans le cloud et les transmettons à App Store Connect et à la Play Console.
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.
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.