LiaDesenvolvedores

Pacotes

A camada mais baixa. Chamadas e eventos tipados sobre o puente de quadro Lia, os tempos limite e limites, e mockLia() para construir fora de Lia.

A maioria dos aplicativos quer @lia-labs/sdk, que é construído com isso e re-exporta tudo. Use o bridge sozinho para construir sua própria camada, ou para chamar algo que o SDK não'para envolver.

npm install @lia-labs/bridge

#O protocolo

Dentro de Lia, sua página roda no app Lia'sua visualização da web. Uma chamada é uma mensagem JSON que a página posta com window.ReactNativeWebView.postMessage:

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

Lia responde a cada chamada uma vez, através de window.__lia.receive(...), com { id, ok: true, result } ou { id, ok: false, error: { code, message? } }, e envia eventos da mesma forma que { event, data }. A ponte define window.__lia (congelado, uma vez por página) e corresponde respostas a chamadas por id.

#Chamando

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?) é digitado por método: os parâmetros que ele recebe e a resposta que resolve vêm do Methods tipo. Ele rejeita com um LiaError:

CódigoQuando
not_in_liaAí's não tem ponte (não dentro de Lia, sem mock).
timeoutLia não pode't resposta dentro de 20 segundos (ou seu timeout). Chamadas que esperam pela pessoa (pay, anúncios, diálogos, o scanner, Face ID) não têm limite a menos que você defina um.
abortedSeu signal foi abortado. Lia pode ainda agir sobre a chamada.
too_largeA mensagem tem mais de 16,000 caracteres, o que Lia ignoraria.
Lia'seu próprio códigosO que Lia respondeu: veja Códigos de erro.
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });

#Escuta

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

Eventos são tipados (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, os quatro *ButtonClicked eventos, e sensor ({ name, values }; o SDK o transforma em cada sensor's reading). Um ouvinte que lança uma exceção é registrado e não'para parar os outros.

#Tudo o que ele exporta

Exportar
isLia()Se há uma ponte.
request(method, params?, options?)Uma chamada tipada.
send(method, params?)Uma chamada sem esperar.
on, off, once, onAnyEventos.
mockLia(options?), MOCK_INITUm Lia fictício: veja Desenvolvimento local.
emit(message)Entrega uma mensagem à página como se Lia tivesse enviado (para mocks e testes).
setDebug(on, logger?)Registra todas as chamadas, respostas e eventos.
install()Começa a ouvir agora; diz se window.__lia é este pacote's.
LiaError, isLiaError(error, code?)Erros.
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENTO protocolo'sua versão e limites.
resetForTests()Esquece toda chamada e ouvinte.
TiposMethods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams e todas as formas Lia envia.

#Um por página

Duas cópias da ponte em um único pacote compartilham um conjunto de chamadas e ouvintes (mantido em um símbolo global), então nada quebra. A tag script SDK pode'para compartilhar: se for's já estão na página, o bridge avisa e pode'ouvir Lia's respostas. Use uma ou outra.

Traduzido automaticamente. O inglês é a fonte de verdade. Leia em inglês

Digite para pesquisar todas as páginas, métodos e endpoints.