API para programadores — window.TTA
O teu site controla funções nativas reais diretamente — o mesmo código funciona em iOS e Android. Sem SDK, sem recompilar: chama-as do teu site.
Detetar a app
O teu site corre num navegador normal e dentro da app. Verifica window.TTA antes de usar funções nativas para a web funcionar em todo o lado.
if (window.TTA) {
// inside the native app
} else {
// normal browser — your web fallback
}Métodos
Os métodos “opt-in” só existem se ativares a função no builder — deteta sempre a disponibilidade.
window.TTA.platform'ios' or 'android' — tells your site it runs inside the native app.
if (window.TTA) {
console.log('Running natively on', window.TTA.platform);
}window.TTA.haptic()Native haptic / vibration feedback on a tap or action.
button.addEventListener('click', () => window.TTA?.haptic());window.TTA.share(url?)Open the native share sheet. Defaults to the current page URL.
window.TTA?.share('https://example.com/product/42');window.TTA.rate()Show the native App Store / Google Play review prompt.
window.TTA?.rate();window.TTA.openExternal(url)Open a link in the in-app browser instead of leaving your app.
window.TTA?.openExternal('https://help.example.com');await window.TTA.scan()opt-in · ScannerOpen the full-screen native QR / barcode scanner. Resolves to {text, format} or null if cancelled.
const result = await window.TTA.scan();
if (result) alert('Scanned: ' + result.text);window.TTA.logEvent(name, params?)opt-in · AnalyticsSend a custom analytics event (Insights). 'app_open' is tracked automatically.
window.TTA?.logEvent?.('add_to_cart', { id: 'sku_42', value: 9.99 });await window.TTA.getProducts()opt-in · In-app purchasesFetch your in-app products: [{ id, title, price, priceValue, currency }].
const products = await window.TTA.getProducts();
products.forEach(p => renderPrice(p.id, p.price));await window.TTA.purchase(productId)opt-in · In-app purchasesLaunch the native purchase flow. Resolves to { success, productId, transactionId } or { success:false, cancelled }.
const r = await window.TTA.purchase('com.app.pro.monthly');
if (r.success) unlockPro();await window.TTA.restorePurchases()opt-in · In-app purchasesReturn the product IDs the user already owns (restore entitlements).
const owned = await window.TTA.restorePurchases();
if (owned.includes('com.app.pro.monthly')) unlockPro();Funciona automaticamente
Com a função ativada, as APIs web padrão funcionam na app: navigator.geolocation (Localização), câmara getUserMedia para bibliotecas web de QR (Câmara), <input type=file> e downloads.