Preview and Run
Preview reads the private workspace; Run reads a published release. Acceptance must record "code saved / Preview verified / Run released" separately. One-click release updates latest; a new release produces an immutable version snapshot.
Public assets and paid resources
asset is public material, usable through pub:/ code or a public URL, and is not billable by itself; resource is private and needs gateway authorisation. Charging also goes through resource objects, products, release and a user grant.
Paid resource products
Prepare the private resource first, then create or reuse the exact resource object and a product draft; check price, duration and resource, and let the user confirm release. An account binding is usually a prerequisite for payment and entitlements, but does not automatically grant payment capability.
See products and operations →
User data records
Use platform logic tables, not localStorage as primary storage. Runtime only touches existing tables and records; fields andpublic_read, rpm_limit code are designed by administrators, so user data is not exposed by accident.
The app Admin page
The management entry is admin/index.htmlcode, still an XApp iframe page using XAUI, bridge and admin capability. Show only what the admin task needs, and never present runtime-visible data as the full dataset.
Send data into the conversation
xapp.thread.entry.insert code is a silent record written with user consent;xapp.webchat.send code sends a message to the main webchat and triggers a reply;xapp.charagent.chat code gets an agent reply inside the XApp in an isolated subthread.
AI multimodality (aicore)
Through xapp.ai.* code asynchronous jobs you can use chat, ASR, AIR, AVR, TTS, image or video generation; poll job status and show progress, timeout, error and cancellable states. Private uploads must use controlled short-lived access and never go straight to the provider.
Calling agents
Use xapp.charagent.chat 与 xapp.charagent.job_getcode. The target must be an existing wxoa/wxcw bound agent that allows public calls; a shared URL must not carry someone else's private key. thread_key
WeChat share card icon
The app icon uses settings.icon_urlcode (public HTTPS or pub:/code); the WeChat share title, description and image are configured through share metadata. These are different fields, and only a real WeChat test confirms what the card shows.
Mobile interface
XApp runtime uses XAUI and targets portrait mobile first. Design input, loading, error, cancel and success states completely before adding visual detail; slow networks must never block basic interaction feedback.