Codes de parrainage et de réduction
Un tap copie le code, une courte confirmation « Copié » apparaît, et l'utilisateur le colle dans WhatsApp ou Messages. Plus rapide que de sélectionner le texte par un appui long.
Cursor + presse-papiers
Les boutons Copier qui échouent sans prévenir et les champs de collage qui ne se remplissent jamais sont des agacements classiques des WebViews. Dans une app WebViewGold, votre app Cursor lit le presse-papiers de l'appareil à la demande avec getclipboard:// (le contenu arrive dans la variable clipboarddata), et la copie utilise l'API Clipboard standard du web avec une solution de repli. Voici le schéma à suivre, ainsi que les règles de confidentialité que les deux plateformes imposent.
Dès $109 en paiement unique par plateforme, ou notre équipe s'occupe de tout dès $698.
Un tap copie le code, une courte confirmation « Copié » apparaît, et l'utilisateur le colle dans WhatsApp ou Messages. Plus rapide que de sélectionner le texte par un appui long.
Un bouton Coller à côté d'un champ de code d'invitation, de numéro de suivi ou de lien lit le presse-papiers avec getclipboard:// et remplit le champ. Idéal pour les parcours « enregistrer un lien » et « rejoindre une équipe ».
Adresses de portefeuille, références de réservation, clés d'API, mots de passe Wi-Fi : des valeurs que personne ne devrait retaper. Copiez-les avec un bouton et affichez la valeur à côté.
Les outils de chat, d'écriture et de prompts ont besoin d'un bouton Copier sur chaque réponse ; les utilisateurs collent le résultat dans un e-mail, des notes ou des réseaux sociaux.
Collez ceci dans Cursor pour implémenter la partie app web. Vérifiez le résultat, publiez, puis testez dans l'app WebViewGold.
Prompt pour l'agent Cursor : Unifiez la gestion du presse-papiers pour le wrapper d'app WebViewGold. 1) Créez lib/webviewgold/clipboard.ts qui exporte copyText(text) (navigator.clipboard.writeText pendant le geste de l'utilisateur, avec une solution de repli document.execCommand("copy") sur un textarea masqué ; renvoie un booléen) et readClipboard(timeoutMs = 3000), qui, quand navigator.userAgent contient mon token WebViewGold personnalisé, définit window.clipboarddata = undefined, navigue vers getclipboard:// et se résout avec window.clipboarddata sans espaces superflus, ou avec null une fois le délai écoulé. 2) Remplacez chaque appel direct à navigator.clipboard et à execCommand de la base de code par ces helpers. 3) Ajoutez un hook useCopy() avec un état « copié » de 2 secondes pour les boutons des clés d'API, des ID et des extraits de code. 4) N'ajoutez des boutons Coller que dans l'app et validez les valeurs collées. 5) N'écrivez jamais dans le presse-papiers après un await. 6) Ajoutez des tests unitaires et une entrée .cursor/rules.
WebViewGold nous a permis d'avoir le temps de mise sur le marché le plus court et le plus efficace jamais possible parmi toutes les autres plates-formes d'application que nous avons essayées au cours des 5 dernières années. Je ne sais pas pourquoi je ne vous ai pas découvert plus tôt, mais je suis vraiment, vraiment content de l'avoir fait. Nous approchons actuellement les 6000 téléchargements d'application sur l'App Store iOS et Google Play Store sans aucun problème!
Environ 30 minutes.
Appelez navigator.clipboard.writeText() directement dans le gestionnaire de clic, avant toute requête lente : les WebViews refusent les écritures dans le presse-papiers effectuées en dehors d'un geste de l'utilisateur. Gardez une solution de repli avec un textarea masqué et document.execCommand("copy").
Affichez un court toast. Android 13 et les versions ultérieures affichent leur propre confirmation de copie : gardez donc la vôtre discrète. Dans l'app, vous pouvez ajouter un retour haptique avec lighthaptic://, en ne faisant qu'un seul appel au pont à la fois.
Quand l'utilisateur touche Coller, videz window.clipboarddata, naviguez vers getclipboard:// (uniquement dans l'app, détectée grâce à votre user agent personnalisé), puis surveillez la variable pendant quelques secondes et remplissez le champ.
Supprimez les espaces superflus et vérifiez que la valeur a la forme attendue (un code d'invitation de 8 caractères, une URL sur un domaine autorisé) avant de l'utiliser. Ne soumettez jamais automatiquement le contenu du presse-papiers.
Ne lisez jamais le presse-papiers au chargement de la page, avec un minuteur ou en arrière-plan. iOS peut demander aux utilisateurs d'autoriser le collage et Android affiche une notification quand une app lit le presse-papiers : une lecture non sollicitée ressemble à de l'espionnage.
La copie fonctionne dans le navigateur et dans l'app ; le collage utilise le pont natif dans l'app. Reliez-les aux boutons de votre app Cursor :
var IN_APP = navigator.userAgent.indexOf("WebViewGold") !== -1; // votre token de user agent personnalisé
// Copier : à appeler directement depuis le gestionnaire de clic
function copyText(text) {
if (navigator.clipboard && window.isSecureContext) {
return navigator.clipboard.writeText(text).catch(function () { legacyCopy(text); });
}
legacyCopy(text);
return Promise.resolve();
}
function legacyCopy(text) {
var ta = document.createElement("textarea");
ta.value = text;
ta.setAttribute("readonly", "");
ta.style.position = "fixed";
ta.style.opacity = "0";
document.body.appendChild(ta);
ta.select();
document.execCommand("copy");
document.body.removeChild(ta);
}
// Coller : lire le presse-papiers de l'appareil (dans l'app uniquement, après un tap)
function pasteInto(input) {
if (!IN_APP) { input.focus(); return; } // navigateur : appui long, puis Coller
window.clipboarddata = undefined;
window.location.href = "getclipboard://";
var started = Date.now();
(function check() {
if (typeof window.clipboarddata !== "undefined") {
input.value = String(window.clipboarddata || "").trim();
} else if (Date.now() - started < 3000) {
setTimeout(check, 100);
}
})();
}navigator.clipboard.writeText ne fonctionne que sur des pages https et pendant un geste de l'utilisateur. Un appel placé après une requête attendue avec await ou lancé depuis un minuteur est refusé, et certaines WebViews bloquent complètement l'API. Copiez directement dans le gestionnaire du tap et gardez la solution de repli avec le textarea.
Elle ne devrait pas, et les systèmes le rendent visible : iOS peut demander à l'utilisateur d'autoriser le collage, et Android affiche une notification quand une app lit le presse-papiers. Ne le lisez que lorsque l'utilisateur touche un bouton Coller.
Le contenu actuel du presse-papiers, injecté dans la variable JavaScript globale clipboarddata. La valeur arrive de façon asynchrone : attendez donc la variable après l'appel au lieu de la lire à la ligne suivante.
Oui. Les utilisateurs peuvent toujours faire un appui long sur un champ de texte et choisir Coller, sans aucun code. getclipboard:// ajoute le bouton Coller qui remplit le champ à leur place en un seul geste.
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.
$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$349 par licence, extension en paiement unique
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.
Comment fonctionne le Cloud Builder Essayer la démo gratuite$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é parPrix Soldes d'hiver valables jusqu'au 31 décembre 2026.
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.