Packages
@lia-labs/bridge
Kopya ang pahina
Ang pinakamababang antas. Ang mga tinukoy na pagtawag at mga pangyayari sa pamamagitan ng Lia's frame bridge, ang mga timeout at limitasyon, at mockLia() para magawa ang nasa labas ng Lia.
Ang mga app ay nangangailangan ng @lia-labs/sdk, na itinatag sa ito at re-export ang lahat nito. Gamitin ang bridge nang sarili para lumikha ng iyong sariling layer, o para tumawag ng isang bagay na SDK ay hindi'hindi mag-wrap.
npm install @lia-labs/bridge#Ang protocol
Sa loob ng Lia, ang iyong pahina ay gumagana sa Lia app'ang web view. Ang isang tawag ay isang JSON mensahe na ipost ng pahina na may window.ReactNativeWebView.postMessage:
{ "lia": 1, "id": 7, "method": "haptic", "params": { "kind": "success" } }Lia ay sumagot sa bawat tawag, sa pamamagitan ng window.__lia.receive(...), kasama { id, ok: true, result } o { id, ok: false, error: { code, message? } }, at nagpapadala ng mga event sa parehong paraan bilang { event, data }. Ang bridge ay naglalarawan ng window.__lia (frozen, isang beses bawat pahina) at sumusunod sa mga sagot sa mga tawag ay id.
#Pangtawag
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?) ay tinataya bawat method: ang params na kanyang tinatanggap at ang sagot na kanyang nagreresolba ay galing sa Methods uri. Ito ay tinanggihan na may LiaError:
| Code | Kailan |
|---|---|
not_in_lia | Dito's wala pang bridge (hindi nasa loob ng Lia, wala pang mock). |
timeout | Lia ay di kaya't sagot sa loob ng 20 segundo (o ang iyong timeout. Ang mga pagtawag na naghihintay sa tao (pay, ads, dialogs, ang scanner, Face ID) walang limitasyon maliban kung ikaw ay nagtakda nito. |
aborted | Ang iyong signal ay pinigil. Lia ay maaaring magpatuloy sa paggawa ng tawag. |
too_large | Ang mensahe ay higit sa 16,000 mga karakter, na Lia ay ihiwalay. |
| Lia'naka-own codes | Ano man ang sinagot ng Lia: tingnan Mga code ng error. |
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });#Listening
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();Ang mga event ay may tipo (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, ang apat *ButtonClicked events, at sensor ({ name, values }; ang SDK ay nagbabago ito sa bawat sensor's reading. Ang isang listener na nag-throw ay naitala at hindi ito'hindi maaabot i-stop ang iba.
#Ang lahat ng kanyang ina-export
| I-export | |
|---|---|
isLia() | Kung may bridge ba ito. |
request(method, params?, options?) | Isang tinukoy na tawag. |
send(method, params?) | Isang tawag nang walang paghihintay. |
on, off, once, onAny | Mga event. |
mockLia(options?), MOCK_INIT | Isang pangarap na Lia: tingnan Local development. |
emit(message) | Nagbibigay ng mensahe sa pahina tulad ng Lia ang nagpadala nito (para sa mga mock at pagsusulit). |
setDebug(on, logger?) | Nag-log ng bawat katanungan, sagot at event. |
install() | Nagsisimula ng pagbasa; sinasabi kung ano window.__lia ay ang package na ito's. |
LiaError, isLiaError(error, code?) | Mga error. |
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENT | Ang protocol'ang bersyon at mga limitasyon. |
resetForTests() | Nakalimot sa bawat tawag at tagapakinig. |
| Uri | Methods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams at bawat hugis Lia ipapadala. |
#Isa bawat pahina
Dalawang kopya ng bridge sa isang bundle ay ibinahagi ang isang set ng mga tawag at mga tagasubaybay (napanatili sa isang global na simbolo), kaya walang nangyayari. Ang script tag SDK ay maaaring'hindi maaabot ibahagi: kung ito's nasa pahina na, ang bridge ay babala at maaari'hindi marinig Lia's sagot. Gamitin ang isa o ang iba.
Awtomatikong isinalin. Ang English ay ang source of truth. Basahin sa Ingles