पैकेज
@lia-labs/bridge
पृष्ठ कॉपी करें
सबसे निम्न स्तर। Lia के फ्रेम ब्रिज पर टाइप किए गए कॉल और घटनाएं, टाइमआउट और सीमाएं, और mockLia() का उपयोग Lia के बाहर बनाने के लिए।
अधिकांश एप्स चाहते हैं @lia-labs/sdk, जो इस पर बनाया गया है और इसके सभी को फिर से एक्सपोर्ट करता है। अपनी परत बनाने के लिए इसका उपयोग अकेले ब्रिज पर या कुछ भी कहने के लिए उपयोग करें जो SDK नहीं करता'तेज इसे घेर लेता है।
npm install @lia-labs/bridge#प्रोटोकॉल
Lia में, आपका पृष्ठ Lia एप में चलता है'राज्य के वेब दृश्य। एक कॉल एक JSON संदेश है जो पृष्ठ द्वारा पोस्ट किया गया है window.ReactNativeWebView.postMessage:
{ "lia": 1, "id": 7, "method": "haptic", "params": { "kind": "success" } }Lia प्रत्येक कॉल का एक बार उत्तर देता है, द्वारा window.__lia.receive(...), साथ में { id, ok: true, result } या { id, ok: false, error: { code, message? } }, और उसी तरह से घटनाएं भेजता है जैसे कि { event, data }. पुल निर्धारित करता है window.__lia (जमीन पर, प्रति पृष्ठ) और आईडी द्वारा कॉल के जवाब मेल खाते हैं।
#कॉल कर रहे हैं
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?) प्रत्येक विधि के लिए टाइप किया जाता है: जो पैरामीटर इसके ले जाते हैं और जो उत्तर इसके साथ समाप्त होता है, वे आते हैं Methods प्रकार। यह एक साथ अस्वीकृत कर देता है LiaError:
| कोड | जब |
|---|---|
not_in_lia | वहाँ'कोई ब्रिज नहीं (बस Lia के भीतर नहीं, कोई मॉक नहीं)। |
timeout | Lia कर सकता है नहीं't 20 सेकंड के भीतर उत्तर दें (या आपका timeout। जो व्यक्ति पर इंतजार करते हैं (pay, विज्ञापन, डायलॉग, स्कैनर, फेस ID) के कोई सीमा नहीं है अगर आप उसे सेट नहीं करते। |
aborted | आपका signal असफल रहा। Lia अभी भी कॉल पर कार्य कर सकता है। |
too_large | संदेश 16,000 अक्षरों से अधिक है, जिसे Lia अनदेखा कर देगा। |
| Lia'अपना कोड | Lia द्वारा उत्तर दिया गया कुछ भी: देखें त्रुटि कोड. |
const controller = new AbortController();
const code = request('scanQr', { text: 'Scan a table' }, { signal: controller.signal, timeout: 60_000 });#सुनना
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();इवेंट टाइप किए गए हैं (Events): pause, resume, theme, viewport, fullscreenChanged, languageChanged, startParam, notificationsChanged, soundChanged, charge, ad, चार *ButtonClicked अपवाद sensor ({ name, values }; SDK के रूप में इसे प्रत्येक सेंसर में बदल देता है's reading। एक सुनने वाला जो फेंक देता है, लॉग किया जाता है और इसके साथ नहीं होता है'अन्य सभी को रोकें।
#इसके द्वारा निर्यात किया गया सब कुछ
| निर्यात | |
|---|---|
isLia() | क्या एक ब्रिज है। |
request(method, params?, options?) | एक टाइप किया गया कॉल। |
send(method, params?) | एक कॉल बिना इंतजार किए। |
on, off, once, onAny | घटनाएं। |
mockLia(options?), MOCK_INIT | एक झूठा Lia: देखें स्थानीय विकास. |
emit(message) | एक संदेश को पेज को बताते हुए हाथ देता है जैसे कि Lia ने भेजा हो (मॉक और परीक्षण के लिए)। |
setDebug(on, logger?) | हर कॉल, उत्तर और घटना को लॉग करता है। |
install() | अब सुनना शुरू करता है; कहता है कि क्या window.__lia है इस पैकेज's. |
LiaError, isLiaError(error, code?) | त्रुटियां। |
PROTOCOL, DEFAULT_TIMEOUT, MAX_MESSAGE, PATIENT | प्रोटोकॉल'राज्य के संस्करण और सीमाएं। |
resetForTests() | हर कॉल और सुनने वाले को भूल जाता है। |
| प्रकार | Methods, MethodName, ParamsOf, ResultOf, Events, EventName, InitResult, ThemeParams और प्रत्येक आकृति Lia भेजती है। |
#प्रति पृष्ठ
एक बंडल में दो ब्रिज कॉपी एक ही सेट कॉल और सुनने वालों का उपयोग करती हैं (एक ग्लोबल सिम्बल पर रखा गया है), इसलिए कुछ भी टूट नहीं जाता। स्क्रिप्ट टैग SDK के साथ कर सकता है'शेयर करें: अगर यह'से पहले से ही पृष्ठ पर, ब्रिज चेतावनी देता है और कर सकता है'तब Lia सुनें'उत्तर। एक या दूसरा उपयोग करें।
स्वचालित अनुवाद। अंग्रेजी सत्य का स्रोत है। अंग्रेजी में पढ़ें