Tema
SDK API
@corevo-ds/app-sdk app'in içinde çalışır ve host (cihaz istemcisi, panel önizlemesi veya corevo dev) ile bridge protokolü üzerinden konuşur. Framework gerektirmez.
bash
npm install @corevo-ds/app-sdkts
import { Corevo } from '@corevo-ds/app-sdk';Eski cihazlar için @corevo-ds/app-sdk/legacy tek dosyalık ES5 sürümdür ve global Corevo tanımlar. API aynıdır.
Corevo.ready
ts
const ctx = await Corevo.ready();
// veya
await Corevo.ready(async (ctx) => {
await preloadFonts();
render(ctx.params);
});ready, host'un init mesajı uygulanınca çözülür ve Context döner: instance_id, app, params, locale, device, files, media, data, capabilities, preview. Callback verirseniz host'a "hazırım" mesajı callback (ve döndürdüğü Promise) bitince gider; böylece ilk kare hazır olmadan ekran açılmaz. Callback 10 sn'de bitmezse SDK yine hazır bildirir. ready() hiç çağrılmazsa init'ten 3 sn sonra SDK kendisi bildirir.
ctx.preview panel önizlemesinde ve corevo dev'de true'dur.
Corevo.params
ts
Corevo.params.get('title'); // tek değer
Corevo.params.all(); // tüm değerler
const off = Corevo.params.on((next) => render(next));
off(); // dinleyiciyi kaldıron mevcut değeri hemen vermez; yalnız sonraki güncellemeleri verir. Değer biçimleri: Parametre tipleri.
Corevo.media
ts
const url = Corevo.media.url(Corevo.params.get('image') as string); // string | nullMedya kimliğini (string veya sayı) cihazdaki adrese çevirir. Haritada olmayan kimlik, boş string ve sayı olmayan değer null döner. file parametreleri için Corevo.files.url(paramKey) de vardır.
Corevo.data
ts
import type { WeatherV1 } from '@corevo-ds/manifest';
const weather = Corevo.data.get<WeatherV1>('weather'); // son snapshot veya null
const off = Corevo.data.on<WeatherV1>('weather', (next) => render(next));Anahtar bir dataset parametresinin key değeri veya data.providers[].id (weather) değeridir. data yeteneği gerekir; veri sağlayıcı bildiren app'e bu yetenek örtük verilir. Yetenek yoksa çağrı capability_denied hatası fırlatır. Ayrıntı: Veri kaynakları.
Corevo.track ve Corevo.page
ts
Corevo.track('cta_click', { label: 'Detaylar' });
Corevo.page('menu');
Corevo.init({ autoTrack: false });track(name, props?)özel bir etkileşim olayı gönderir.trackyeteneği gerekir.page(name)sayfa görüntüleme olayı (corevo.page_view) ister. Olay yalnız açık bir etkileşim oturumunda gider; oturum yokken sayfa adı hatırlanır. Çok ekranlı app'te her ekran değişiminde çağırın.init({ autoTrack: false })otomatik olayları vepage'i kapatır;trackçalışmaya devam eder.
Ad ve props kuralları, otomatik olayların listesi: Etkileşim olayları.
Dil: Corevo.i18n ve locale olayı
ts
Corevo.i18n.locale; // "tr" | "en"
Corevo.i18n.t({ tr: 'Merhaba', en: 'Hello' });
Corevo.on('locale', (locale) => rerender(locale));Dil host'tan gelir; app dili kendisi değiştiremez. t aktif dili, yoksa tr'yi, o da yoksa '' döner.
Görünürlük: show / hide
ts
Corevo.on('hide', () => pauseVideoAndTimers());
Corevo.on('show', () => resume());App playlist veya kampanyada sırası gelmediğinde arka planda bekletilebilir. hide gelince video, animasyon ve zamanlayıcıları durdurun; show ile devam edin. Şablon bunun bir örneğini içerir.
Depolama: Corevo.storage
ts
await Corevo.storage.set('last_seen', Date.now());
const value = await Corevo.storage.get('last_seen'); // yoksa null
await Corevo.storage.remove('last_seen');Tarayıcı localStorage kullanılamaz (sandbox). Depolama bridge üzerinden cihazda tutulur ve storage yeteneği ister. Kota örnek başına 1 MB'tır; aşan set quota_exceeded ile reddedilir. İstek 10 sn'de yanıtlanmazsa timeout ile reddedilir. Sınırlar: Güvenlik modeli.
Diğerleri
| API | Yetenek | Not |
|---|---|---|
Corevo.live.on(event, cb) / off | live.subscribe | Paneldeki canlı kumanda (controls) olayları |
Corevo.live.send(event, payload) | live.up | Cihazdan sunucuya olay |
Corevo.actions.sendMail({ to, subject, body }) | actions.mail | Sunucu üzerinden e-posta |
Corevo.device | — | init sonrası cihaz bilgisi (saat dilimi dahil) |
Corevo.version | — | SDK sürümü |
Hatalar
Reddedilen Promise bir Error olur; code alanı capability_denied, timeout, message_too_large, protocol_mismatch, invalid_argument, failed veya host'tan gelen bir koddur (ör. depolamada quota_exceeded). Yakalanmayan hatalar host'a da raporlanır ve corevo dev logunda görünür.