Saltar al contenido
WebViewGold Del vibe coding a la App Store
Español
Consigue WebViewGold

ChatGPT & Codex

Una plantilla AGENTS.md para que Codex cree apps WebViewGold listas para las tiendas

Codex lee AGENTS.md antes de tocar tu código. Dale las tres cosas que no puede adivinar: que la app se ejecuta dentro de un WebView nativo, cómo se llama al puente JavaScript de WebViewGold y qué reglas de las tiendas debe respetar cada cambio. Aquí tienes una plantilla completa y una explicación de cada parte.

Desde $109 de pago único por plataforma, o deja que nuestro equipo lo haga todo desde $698.

  • Garantía de aprobación – o te devolvemos el dinero en 14 días
  • Sin programar
  • Pago único, actualizaciones gratuitas
  • Soporte humano 24/7
  • Hecho en Alemania desde 2014 · ISO 27001

Cómo usa Codex el archivo AGENTS.md

Codex busca AGENTS.md en la raíz del repositorio (y en subcarpetas, para instrucciones específicas de cada carpeta) y trata su contenido como instrucciones permanentes para la sesión: convenciones, comandos, cosas que evitar. Es el equivalente en Codex de un archivo CLAUDE.md o de las project rules de Cursor, y es Markdown sin más, así que puedes mantener una única fuente de verdad y copiarla a los demás formatos.

En una app WebViewGold, el archivo se gana su sitio porque los supuestos por defecto de un agente fallan de tres formas concretas. Da por hecho que hay un navegador, así que recurre a la Web Share API o a un manifiesto PWA donde existe una llamada nativa. No conoce la sintaxis del puente, así que se inventa algo como window.WebViewGold.share(). Y no tiene ni idea de que un botón de Stripe para comprar créditos supone un rechazo en iOS. La plantilla de abajo corrige las tres cosas.

La plantilla

Guárdala como AGENTS.md en la raíz del repositorio, sustituye los textos entre corchetes y borra las llamadas del puente que no uses. Cada esquema de la tabla procede de la documentación de WebViewGold para iOS y de la documentación para Android. Puedes dejarla en inglés: Codex la entiende igual de bien.

markdown
# AGENTS.md - [App name]

## What this project is
[One paragraph: what the app does, who uses it, main stack, e.g. Next.js + Supabase.]
Production URL: https://app.example.com
The same web app is published as native iOS and Android apps with WebViewGold.
The native apps load the production URL inside a WebView (WKWebView on iOS,
Android WebView on Android). There is no separate mobile codebase.

## Runtime context you must respect
- The page can run in three places: desktop browser, mobile browser, native app.
- The native app sends the user agent marker `MYAPPNATIVE` (set in Config.swift
  and Config.java). Detect it only through `isNativeApp()` in `src/lib/platform.ts`.
- OAuth popups do not behave like in a browser. Google/Facebook login is handled by
  the wrapper (Social Login Helper); Sign in with Apple is handled automatically.
  Do not add workarounds that open OAuth in new windows.
- window.open and target="_blank" are governed by the wrapper's URL handling rules.
  Use normal links for internal navigation.
- When `isNativeApp()` is true: no "Add to home screen" or "Download our app"
  banners, no service worker install prompts, no cookie banner unless legally required.

## WebViewGold JavaScript bridge
Native features are triggered by navigating to a URL scheme:
`window.location.href = "scheme://..."`. Results come back as global JavaScript
variables or callback functions, asynchronously. Only call schemes when
`isNativeApp()` is true and always keep a web fallback.
Full reference: https://www.webviewgold.com/llms-full.txt

| Feature | Call | Result |
| --- | --- | --- |
| Request push permission | `registerpush://` | native permission prompt |
| Check push permission | `checkNativePushPermissions://` | `nativePushEnabled` (true/false) |
| OneSignal subscription ID | `getonesignalplayerid://` | `onesignalplayerid` |
| Local scheduled notification | `sendlocalpushmsg://push.send?s=SECONDS=msg!MESSAGE&!#TITLE&!#URL` | - |
| Share sheet | `shareapp://message?=TEXT&url=URL` | - |
| Haptics | `lighthaptic://`, `successhaptic://`, `errorhaptic://` | - |
| Biometric check | `bioauth://` | iOS: `onBioAuthSuccess()`, `onBioAuthFailure(code, msg)`, `onBioAuthUnavailable()` |
| QR scanner | `qrcode://` | scanned URL is loaded in the WebView |
| Barcode scanner | `barcodescanner://` | `barcodescanresult` |
| In-app purchase (RevenueCat) | `revenuecat://purchase?external_id=USER_ID&product=PRODUCT_ID` | entitlement in RevenueCat; grant server-side via webhook |
| Restore purchases | `restoreinapppurchases://` | - |
| Manage subscription | `cancelinapppurchase://` | opens the store subscription page |
| App version | `getappversion://` | `versionNumber`, `bundleNumber` |
| Install ID | `get-uuid://` | `uuid` |
| Save image to gallery | `savethisimage://?url=IMAGE_URL` | - |
| Open system app settings (Android) | `settingsapp://` | - |

Injected variables arrive after a short delay: poll with a timeout, never read
them synchronously after the navigation.

## Store rules (every change must keep these true)
- /privacy and /terms are real routes, linked from the footer and from settings.
- Users who can sign up can delete their account in settings (server-side deletion)
  and via a public /delete-account page.
- If any third-party login exists, Sign in with Apple is offered as an equal option.
- Digital goods, subscriptions and credits are bought through the bridge
  (`revenuecat://purchase...`) when `isNativeApp()`; Stripe stays for browser users.
  Never show card forms or external payment links for digital goods in the native app.
  Physical goods and services may use Stripe everywhere.
- Layout works from 320px width, tap targets >= 44px, safe-area insets on fixed bars,
  inputs with font-size >= 16px.
- Every fetch has loading, empty, error and retry states. No blank screens.
- User-generated or AI-generated content has a report action; users can block others.
- No placeholder copy, no dead links, no mixed content.

## Commands
- Install: `npm install`
- Dev server: `npm run dev`
- Lint and typecheck: `npm run lint && npm run typecheck`
- Tests: `npm test`
Run lint and tests before you finish a task.

## Definition of done for any task
1. Works in a desktop browser and at 320px width.
2. Native-only code is behind `isNativeApp()` with a web fallback.
3. No new store-rule violations (see above).
4. Summarize what changed and what to test on a real device.

Qué hace cada parte

Contexto del proyecto

Un párrafo más la URL de producción. La frase "There is no separate mobile codebase" (no hay un código móvil aparte) evita que Codex proponga React Native, Capacitor o un segundo repositorio cuando le pides una función móvil.

Contexto de ejecución

La clave es el marcador de user agent. Define en WebViewGold un user agent personalizado (useragent_iphone y useragent_ipad en Config.swift, USER_AGENT en Config.java) que contenga tu marcador, y la app web podrá distinguir la app del navegador con una sola función auxiliar.

Tabla del puente

Los esquemas exactos y los nombres de las variables inyectadas. Es la parte que los agentes más se inventan. Conserva solo las filas que uses; para todo lo demás, remite a llms-full.txt en lugar de pegar toda la documentación.

Reglas de las tiendas

Escritas como invariantes, no como lista de tareas, para que se apliquen a cada tarea futura. La regla de pagos es la que sale cara: la 3.1.1 de Apple rechaza los bienes digitales vendidos fuera de la compra dentro de la app.

Comandos y definición de terminado

Codex ejecuta comandos en su sandbox cuando le dices cuáles existen. La definición de terminado hace que te informe de las pruebas en dispositivo que todavía tienes que hacer tú.

Mi WebView de iOS finalmente está aprobada. ¡Gracias!

Taha Farooqui · CodeCanyon

Ponla en marcha en diez minutos

  1. Copia, rellena, recorta

    Sustituye los textos entre corchetes, borra las filas del puente que no vayas a usar y adapta los comandos a tu gestor de paquetes.

  2. Define el marcador de user agent en WebViewGold

    Config.swift: useragent_iphone y useragent_ipad; Config.java: USER_AGENT. Conserva la cadena de user agent por defecto y añade tu marcador al final (por ejemplo, MYAPPNATIVE/1.0) para que los sitios web y los proveedores de OAuth sigan reconociendo el dispositivo.

  3. Deja que Codex cree la función auxiliar

    Usa el prompt de abajo. Crea isNativeApp() y sustituye las comprobaciones de user agent dispersas por el código, de modo que el resto del archivo tenga algo a lo que referirse.

  4. Haz commit del archivo

    AGENTS.md se lee desde el repositorio, así que Codex en la nube, la CLI y la extensión del IDE ven las mismas reglas. Los AGENTS.md anidados en subcarpetas añaden instrucciones específicas de esa carpeta.

Primer prompt después de añadir el archivo

Pégalo en Codex
Lee primero AGENTS.md. Después: 1) implementa isNativeApp() en src/lib/platform.ts basándote en el marcador de user agent que se describe allí, y sustituye con ella cada comprobación de user agent dispersa por el código; 2) añade un botón Compartir nativo en la página de detalle del elemento: dentro de la app nativa, usa la llamada del menú de compartir de la tabla del puente de AGENTS.md; en los navegadores, usa la Web Share API cuando esté disponible y, si no, copia el enlace al portapapeles con una confirmación breve; 3) activa la respuesta háptica de éxito después de un guardado correcto, solo en la app nativa. Mantén el diseño actual. Infórmame de lo que cambiaste y de qué reglas de AGENTS.md aplicaste.

Qué no poner en AGENTS.md

  • Secretos o claves de API. El archivo se sube al repositorio y se le muestra al modelo; guarda las claves en variables de entorno.
  • Toda la documentación de WebViewGold. Enlaza llms-full.txt y mantén la tabla corta; un archivo largo diluye las reglas que importan.
  • Textos de la ficha de la tienda. Las descripciones y las palabras clave van en la consola, no en las instrucciones del agente.
  • Reglas que contradicen el código ("usamos Tailwind" cuando no es así). Codex se fía del archivo y generará código incoherente.
  • Objetivos vagos ("hazlo genial"). Escribe invariantes que pueda comprobar, como la sección de reglas de las tiendas.

Preguntas frecuentes

¿Codex en la nube también lee AGENTS.md?

Sí. Las tareas en la nube se ejecutan sobre un clon de tu repositorio, así que el archivo del repositorio se tiene en cuenta igual que en la CLI y en la extensión del IDE.

¿Cómo sé que Codex sigue el archivo?

Pídele que enumere al final de cada tarea las reglas que aplicó (la plantilla lo pide en la definición de terminado) y lee el resumen de la pull request. Si ignora una regla una y otra vez, súbela en el archivo y hazla más concreta.

¿La tabla del puente debe incluir todas las funciones de WebViewGold?

No. Conserva las filas de las funciones que usas o piensas usar y enlaza https://www.webviewgold.com/llms-full.txt para el resto. El agente puede leer la documentación completa cuando una tarea necesite una función que no está en la tabla.

¿Puedo usar el mismo archivo en proyectos de Lovable o Bolt?

Esos builders no leen AGENTS.md, pero la sección de reglas de las tiendas funciona como prompt: pégala en el chat del builder antes de pedir un cambio.

Tres formas de llevar tu app a las tiendas

El mismo resultado, con distinta cantidad de trabajo por tu parte. Las tres incluyen la garantía de aprobación y soporte humano 24/7.

Hazlo tú mismo

$109 por plataforma, pago único

La licencia de WebViewGold: un proyecto de Xcode o Android Studio listo para usar. Pega tu URL, define nombre e icono, activa funciones, compila y envía. Actualizaciones gratuitas para siempre.

Ver planes en la página principal

Full Service

$698 por plataforma $798

Envíanos tu URL y tu icono. Nuestro equipo configura, compila y entrega tu app en 72 horas, en marca blanca y con los proyectos fuente. Ambas plataformas por $1,158.

Detalles del Full Service Con tecnología de WeSetupYourWebViewApp

Precios de la Oferta de invierno válidos hasta el 31 de diciembre de 2026.

¿Listo para lanzar tu app?

Garantía de aprobación en App Store & Google Play – o te devolvemos el dinero en 14 días

¿Prefieres delegarlo? Full Service: configuramos, compilamos y entregamos en 72 horas, desde $698 por plataforma. ¿Preguntas? Chatea con nosotros 24/7.

Los reembolsos se conceden bajo las condiciones indicadas en nuestras FAQ: un rechazo por motivos ajenos al contenido por parte de Apple y/o Google, reclamado dentro de los 14 días posteriores a la compra.