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

Replit + extension de partage

Partager vers votre app Replit : 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 Replit 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

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 à Backends Express/Flask/FastAPI avec Replit Postgres ou des bases de données externes : l'utilisateur garde la main.

Prompt pour Replit

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

Prompt à coller dans Replit Agent
Ajoutez une fonctionnalité « partager vers l'app » pour le wrapper natif WebViewGold. Dans le front-end React, créez un hook useSharedContent() qui ne s'exécute que lorsque navigator.userAgent contient mon token WebViewGold : vérifiez la variable globale sharedData au chargement puis de nouveau après une seconde, classez-la comme lien (commence par http), image (longue chaîne Base64) ou texte, et ignorez les valeurs déjà traitées dans cette session (sessionStorage). Quand un contenu arrive, ouvrez une feuille Enregistrer avec un aperçu et un bouton Enregistrer. Sur Enregistrer, envoyez { kind, value } en POST à un nouvel endpoint /api/shares qui exige la session Replit Auth. Dans le backend, portez la limite du corps JSON à 15 Mo pour cette route uniquement, décodez les images et stockez-les dans Replit Object Storage sous shares/USER_ID/, récupérez les titres des liens côté serveur avec un délai maximal, et insérez une ligne dans une table shares de Postgres. Renvoyez l'élément enregistré et affichez-le en haut de la liste. Réessayez une fois si la requête expire pendant le réveil du déploiement. Dans un navigateur classique, n'affichez jamais la feuille Enregistrer automatiquement.

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

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 Replit

Environ une heure, surtout pour l'écran d'enregistrement de votre app web.

  1. Choisissez une seule action pour le partage

    Décidez de ce que fait un partage dans votre app Replit : enregistrer un lien, joindre une photo, commencer une note. Une action claire convertit mieux qu'un menu d'options.

  2. 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.

  3. 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.

  4. Lisez sharedData dans Replit

    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.

  5. 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.

  6. 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 Backends Express/Flask/FastAPI avec Replit Postgres ou des bases de données externes, 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 Replit 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.

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 Replit ?

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.