Paketler
@lia-labs/bridge
Sayfayı kopyala
En düşük seviye. Lia'ın çerçeve köprüsü üzerinden tipi çağrılar ve olaylar, zaman aşımı ve sınırlar, ve mockLia() ile Lia dışında inşa etmek için.
Çoğu uygulama istiyor @lia-labs/sdk, bu, bu ve tümünü yeniden dışa aktaran bir yapıdır. Köprüyü kendi katmanınızı inşa etmek için veya SDK'ın bir şeyini çağırmak için kullanın.'sarmalayın.
npm install @lia-labs/bridge#Protokol
Lia içinde, sayfanız Lia uygulamasında çalışır'web görünümü. Bir çağrı, sayfa tarafından JSON mesajı ile gönderilen bir mesajdır window.ReactNativeWebView.postMessage:
{ "lia": 1, "id": 7, "method": "haptic", "params": { "kind": "success" } }Lia her aramayı, üzerinden window.__lia.receive(...), ile { id, ok: true, result } veya { id, ok: false, error: { code, message? } }, ve aynı şekilde olaylar gönderir { event, data }. Köprü tanımlar window.__lia (donmuş, sayfa başına bir kez) ve id'ye göre çağrıların yanıtlarını eşleştirir.
#Çağrı
import { isLia, request, send } from '@lia-labs/bridge';
isLia(); // true inside the Lia app (or with mockLia)
const me = await request('init');
const { best } = await request('submitScore', { score: 1280 });
send('ready'); // without waiting for the answer; failures are droppedrequest(method, params?, options?) her yöntem için tanımlanır: parametreleri ve döndürdüğü cevap, bu yöntemden gelir. Methods tür. Bir iletilerle reddeder LiaError:
| Kod | Zaman |
|---|---|
not_in_lia | Orada'hayır köprü (içinde Lia değil, mock değil). |
timeout | Lia yapamaz'__,20 saniye içinde cevap vermelidir (veya timeout). Kişiye göre bekleyen çağrılar (pay, reklamlar, diyaloglar, tarayıcı, Face ID) sınırsızdır, aksi takdirde siz bir tane ayarlamazsınız. |
aborted | Senin signal iptal edildi. Lia çağrıyı hâlâ işleyebilir. |
too_large | Mesaj 16,000 karakterden uzun, bu yüzden Lia ignore eder. |
| Lia'kendi kodları | Lia'nın cevabı ne olursa olsun: bkz. Hata kodları. |
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });#Dinleme
import { on, once, onAny, off } from '@lia-labs/bridge';
const stop = on('theme', ({ colorScheme, theme }) => repaint(colorScheme, theme));
once('resume', () => refresh());
onAny((event, data) => console.log(event, data));
stop();Olaylar türledir (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, dört *ButtonClicked olaylar, ve sensor ({ name, values }; SDK sensörlerine dönüştürür's reading). Bir istemci atarsa, günlüğe kaydedilir ve donmaz'diğerlerini durdurun.
#İçindeki her şeyi dışa aktar
| Dışa aktar | |
|---|---|
isLia() | Bir köprü var mı. |
request(method, params?, options?) | Bir türlü çağrı. |
send(method, params?) | Beklemeden bir çağrı. |
on, off, once, onAny | Olaylar. |
mockLia(options?), MOCK_INIT | Bir varsayılan Lia: bakın Yerel geliştirme. |
emit(message) | Bir mesajı, Lia tarafından gönderilmiş gibi sayfanın önüne verir (mock'lar ve testler için). |
setDebug(on, logger?) | Her çağrı, cevap ve olayı kaydeder. |
install() | Şimdi dinlemeye başlar; ne olduğunu söyler window.__lia bu pakettir's. |
LiaError, isLiaError(error, code?) | Hatalar. |
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENT | Protokol'sürüm ve sınırlar. |
resetForTests() | Her çağrıyı ve dinleyiciyi unutur. |
| Türler | Methods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams ve her şekil Lia gönderir. |
#Sayfa başına bir tane
Bir paketteki köprünün iki kopyası, aynı çağrı ve dinleyici setini paylaşır (bir evrensel sembolde tutulur), bu yüzden hiçbir şey bozulmaz. SDK etiketi script'paylaşım: eğer's zaten sayfada olan, köprü uyarı verir ve olabilir' Lia duymak's cevaplar. Birini veya diğerini kullanın.
Otomatik çeviri. İngilizce, doğru kaynaktır. İngilizce olarak oku