LiaGeliştiriciler

Paketler

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 dropped

request(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:

KodZaman
not_in_liaOrada'hayır köprü (içinde Lia değil, mock değil).
timeoutLia 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.
abortedSenin signal iptal edildi. Lia çağrıyı hâlâ işleyebilir.
too_largeMesaj 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, onAnyOlaylar.
mockLia(options?), MOCK_INITBir 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, PATIENTProtokol'sürüm ve sınırlar.
resetForTests()Her çağrıyı ve dinleyiciyi unutur.
TürlerMethods, 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

Her sayfa, yöntem ve uç noktayı aramak için yazın.