LiaDesarrolladores

Paquetes

La capa más baja. Llamadas y eventos tipados sobre el puente de marco de Lia, los tiempos de espera y límites, y mockLia() para construir fuera de Lia.

La mayoría de las aplicaciones quieren @lia-labs/sdk, que está construida sobre esto y reexporta todo. Usa el puente por sí mismo para construir tu propia capa, o para llamar algo que el SDK no'envolver.

npm install @lia-labs/bridge

#El protocolo

Dentro de Lia, su página se ejecuta en la aplicación Lia'su vista web. Una llamada es un mensaje JSON que la página publica con window.ReactNativeWebView.postMessage:

{ "lia": 1, "id": 7, "method": "haptic", "params": { "kind": "success" } }

Lia responde a cada llamada una vez, a través de window.__lia.receive(...), con { id, ok: true, result } o { id, ok: false, error: { code, message? } }, y envía eventos de la misma forma que { event, data }. El puente define window.__lia (congelado, una vez por página) y coincide con respuestas a llamadas por id.

#Llamando

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?) se define por método: los parámetros que acepta y la respuesta con la que se resuelve provienen de la Methods tipo. Lo rechaza con un LiaError:

CódigoCuándo
not_in_liaAllí'tu no tiene puente (no dentro de Lia, no hay simulación).
timeoutLia no puede't respuesta dentro de 20 segundos (o su timeout. Llamadas que esperan a la persona (pay, anuncios, diálogos, el escáner, Face ID) no tienen límite a menos que lo establezcas.
abortedTu signal fue abortado. Lia aún puede actuar sobre la llamada.
too_largeEl mensaje tiene más de 16,000 caracteres, lo cual Lia ignoraría.
Lia'propios códigosLo que Lia respondió: vea Códigos de error.
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });

#Escuchando

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();

Los eventos tienen tipo (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, las cuatro *ButtonClicked eventos, y sensor ({ name, values }; la SDK lo convierte en cada sensor's reading. Un oyente que lanza una excepción se registra y no'no detener a los demás.

#Todo lo que exporta

Exportar
isLia()Si hay un puente.
request(method, params?, options?)Una llamada tipificada.
send(method, params?)Una llamada sin esperar.
on, off, once, onAnyEventos.
mockLia(options?), MOCK_INITUn Lia ficticio: ver Desarrollo local.
emit(message)Entrega un mensaje a la página como si Lia lo hubiera enviado (para pruebas y mocks).
setDebug(on, logger?)Registra cada llamada, respuesta y evento.
install()Comienza a escuchar ahora; dice si window.__lia es este paquete's.
LiaError, isLiaError(error, code?)Errores.
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENTEl protocolo'su versión y límites.
resetForTests()Olvida cada llamada y oyente.
TiposMethods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams y cada forma Lia envía.

#Una por página

Dos copias del puente en un solo paquete comparten un conjunto de llamadas y oyentes (guardados en un símbolo global), así que nada se rompe. La etiqueta de script SDK puede'no compartir: si es's ya en la página, el puente advierte y puede'escuchar Lia's respuestas. Use una u otra.

Traducido automáticamente. El inglés es la fuente de verdad. Leer en inglés

Escribe para buscar en cada página, método y punto final.