Gói
@lia-labs/bridge
Sao chép trang
Lớp thấp nhất. Gọi có kiểu và sự kiện qua cầu khung Lia, các thời gian chờ và giới hạn, và mockLia() để xây dựng bên ngoài Lia.
Hầu hết các ứng dụng muốn @lia-labs/sdk, mà được xây dựng trên điều này và xuất lại toàn bộ. Sử dụng cầu nối riêng để xây dựng lớp của bạn, hoặc để gọi một cái gì đó mà SDK'bao quanh.
npm install @lia-labs/bridge#Giao thức
Trong Lia, trang của bạn chạy trong ứng dụng Lia'mà trình duyệt web. Một cuộc gọi là một thông điệp JSON mà trang gửi với window.ReactNativeWebView.postMessage:
{ "lia": 1, "id": 7, "method": "haptic", "params": { "kind": "success" } }Lia trả lời mỗi cuộc gọi một lần, thông qua window.__lia.receive(...), với { id, ok: true, result } hoặc { id, ok: false, error: { code, message? } }, và gửi sự kiện theo cách giống như { event, data }. Cầu nối xác định window.__lia (đã đóng băng, một lần mỗi trang) và khớp câu trả lời với các cuộc gọi bằng id.
#Gọi
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?) được gõ theo từng phương pháp: các tham số mà nó nhận và câu trả lời mà nó giải quyết đến từ Methods kiểu. Nó từ chối với một LiaError:
| Mã | Khi nào |
|---|---|
not_in_lia | Có'không có cầu nối (không ở trong Lia, không có mô phỏng). |
timeout | Lia không thể't câu trả lời trong 20 giây (hoặc bạn timeout). Các cuộc gọi chờ người dùng (pay, quảng cáo, hộp thoại, máy quét, Face ID) không có giới hạn trừ khi bạn đặt một. |
aborted | Của bạn signal đã bị hủy bỏ. Lia vẫn có thể hành động trên cuộc gọi. |
too_large | Thông điệp có hơn 16,000 ký tự, điều mà Lia sẽ bỏ qua. |
| Lia'mã riêng của họ | Bất cứ điều gì Lia trả lời: xem Mã lỗi. |
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });#Lắng nghe
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();Sự kiện được ghi loại (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, bốn *ButtonClicked sự kiện, và sensor ({ name, values }; SDK chuyển nó thành mỗi cảm biến's reading). Một trình lắng nghe ném sẽ được ghi lại và không'dừng những cái khác.
#Tất cả những gì nó xuất ra
| Xuất | |
|---|---|
isLia() | Có một cây cầu hay không. |
request(method, params?, options?) | Một cuộc gọi có kiểu. |
send(method, params?) | Một cuộc gọi không chờ đợi. |
on, off, once, onAny | Sự kiện. |
mockLia(options?), MOCK_INIT | Một Lia giả: xem Phát triển cục bộ. |
emit(message) | Gửi một thông điệp đến trang như thể Lia đã gửi (dùng cho các bản mô phỏng và kiểm thử). |
setDebug(on, logger?) | Ghi lại mọi cuộc gọi, câu trả lời và sự kiện. |
install() | Bắt đầu lắng nghe ngay bây giờ; nói xem window.__lia là gói này's. |
LiaError, isLiaError(error, code?) | Lỗi. |
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENT | Giao thức'mà phiên bản và giới hạn. |
resetForTests() | Quên mọi cuộc gọi và người nghe. |
| Loại | Methods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams và mọi hình dạng Lia gửi. |
#Một trên mỗi trang
Hai bản sao của cầu trong một gói chia sẻ một bộ lời gọi và lắng nghe (được lưu trên một biểu tượng toàn cục), vì vậy không có gì bị hỏng. Thẻ script SDK có thể'chia sẻ: nếu nó's cũng ở'nghe Lia's ứng dụng có thể sử dụng.
Được dịch tự động. Tiếng Anh là nguồn tin cậy. Đọc bằng tiếng Anh