LiaРазработчики

SDK справка

Тактильная обратная связь, сканер QR, буфер обмена, ссылки, собственные экраны Lia, Face ID и Touch ID, и датчики движения.

#Тактильная обратная связь

#Lia.haptic(kind)

Касание, которое чувствует человек. Решается с null.

Lia.haptic("success");
kindПохоже на
"light" (по умолчанию), "medium", "heavy", "rigid", "soft"Касание, от легкого до тяжелого
"success", "warning", "error"Результат
"selection"Щелчок, для выбора изменения

Неизвестная игра играет "light". Каждое тактильное ощущение — это обратный путь к Lia, поэтому не'не играть одну каждую кадр игры.

#Сканирование и буфер обмена

#Lia.scanQr(options)

Открывает Lia's QR сканер над вашим приложением. Решается с кодом'текст, или null если человек закрыл его.

const text = await Lia.scanQr({ text: "Scan the code on the table" });
ОпцияТип
textстрокаНеобязательно, под сканером'окно, до 64 символов.

Ошибки: bad_text, busy.

#Lia.copyText(text)

Копирует текст в буфер обмена, и Lia говорит об этом'скопировано. Возвращает null.

ПараметрТип
textстрокаДо 4096 символов.

Ошибки: bad_text, unsupported.

#Lia.readClipboard()

Текст на буфере обмена, или null. На iPhone телефон сначала спрашивает человека.

const pasted = await Lia.readClipboard();

Открывает веб-страницу. Ваш фрейм показывает только ваши собственные страницы, поэтому используйте это для любого другого сайта.

Lia.openLink("https://example.com/terms");               // in Lia's in-app browser, over your app
Lia.openLink("https://example.com", { external: true }); // outside Lia, in the phone's browser
ПараметрТип
urlстрокаАдрес https, до 2048 символов.
options.externalлогическое значениеОткройте его вне Lia.

Решается с null когда встроенный браузер приложения закрывается (или сразу для external. Ошибки: bad_url.

Открывает одну из Lia'свои экраны. Страницы сначала закрывают ваше приложение (спрашивая, если вы включили подтверждение закрытия и открывают их как самих себя; листы открываются поверх вашего приложения, которое остается.

Lia.openLiaLink("mine"); // Lia's mining sheet, over your app
screenОткрываетВаше приложение
"invite"Пригласите друзей в LiaЗакрывает
"strides"StridesЗакрывает
"activity"Человек's активностьЗакрывает
"send"Отправить $LIAЗакрывает
"apps"Apps CenterЗакрывает
"streak"Серия проверокОстается
"mine"ДобычаОстается
"receive"Получить $LIAОстается

Решается с { closed }: true если ваше приложение было закрыто, false если он остался (или человек решил остаться). Ошибки: unknown_screen, bad_screen.

#Лицо ID и Касание ID

#Lia.biometric

Попросите человека подтвердить это'их, с телефоном's Лицо ID, касание ID или отпечаток пальца, перед чем-то чувствительным в вашем приложении. Ваше приложение узнает только, прошли ли они.

#Lia.biometric.init()

Может ли телефон это сделать. Возвращает { available, type }: available истинно, когда телефон имеет его и'настроены; type это "face", "finger" или "unknown".

#Lia.biometric.authenticate(options)

Спрашивает человека подтвердить. Возвращает { authenticated }. Если они могут'не использовать биометрию, телефон может предложить свой пароль.

const { available } = await Lia.biometric.init();
if (available) {
  const { authenticated } = await Lia.biometric.authenticate({ reason: "Confirm it's you to open your vault" });
}
ОпцияТип
reasonстрокаНеобязательно, отображается телефоном, до 128 символов. Lia'свои слова, когда их оставляют в стороне.

Ошибки: unsupported, busy, bad_reason.

#Движение

Три датчика, каждый с start, stop, isStarted и его последним чтением. Чтения поступают в виде событий, пока датчик работает; он останавливается, когда ваше приложение закрывается. Все три являются необязательными на телефонах: start() неудача с unsupported где есть'нет.

ДатчикЧтениеЕдиницыСобытие
Lia.accelerometerx, y, zм/с², включая гравитацию"accelerometerChanged"
Lia.gyroscopex, y, zСкорость вращения, радиан в секунду"gyroscopeChanged"
Lia.deviceOrientationalpha, beta, gammaУглы в радианах"deviceOrientationChanged"
await Lia.deviceOrientation.start({ refreshRate: 50 });
Lia.on("deviceOrientationChanged", function (r) {
  steer(r.gamma); // tilting left and right
});
// later
Lia.deviceOrientation.stop();

#Lia.accelerometer

Член
start(options)Начинает измерения. options.refreshRate: 20 до 1000 мс между измерениями, 1000 по умолчанию. Возвращает true; также срабатывает "accelerometerStarted". Ошибки: bad_refresh_rate, unsupported.
stop()Останавливает их. Решает с true; также срабатывает "accelerometerStopped".
isStartedОно'ваше выполнение.
x, y, zПоследнее чтение, null до первого.

#Lia.gyroscope

То же самое Lia.accelerometer, с x, y и z скорости вращения.

#Lia.deviceOrientation

То же самое, с alpha, beta и gamma.

#Захват фото и видео

SDK 1.9 добавит нативный захват в следующую сборку мобильного приложения Lia. Проверьте возможность, возвращаемую init(); установка более новой JavaScript SDK не добавляет поддержку камеры в более старое мобильное приложение.

const session = await Lia.init();
if (session.capabilities?.capturePhoto) {
  const media = await Lia.capturePhoto(); // or Lia.captureVideo()
  if (!media.cancelled) {
    try {
      const parts = [];
      let offset = 0;
      for (;;) {
        const chunk = await Lia.readMedia(media.id, offset);
        parts.push(Uint8Array.from(atob(chunk.base64), c => c.charCodeAt(0)));
        offset = chunk.nextOffset;
        if (chunk.eof) break;
        // Stay below the shared bridge rate limit.
        await new Promise(resolve => setTimeout(resolve, 100));
      }
      const blob = new Blob(parts, { type: media.mimeType });
      // Preview with URL.createObjectURL(blob), or upload after the user confirms.
      // Revoke preview object URLs when finished. No upload occurs automatically.
    } finally {
      await Lia.releaseMedia(media.id);
    }
  }
}

capturePhoto() и captureVideo() отображение Lia'с согласительным листом, названием запрашивающего приложения, за которым следует система камеры. Доступ к камере запрашивается только тогда; видео также требует разрешения микрофона. Отмена возвращает { cancelled: true }. Результат захвата в противном случае содержит id, kind, mimeType, size в байтах, width, height и duration в миллисекундах или null. Нет пути к файлу устройства или ответа EXIF.

Фото ограничены 8 MiB. Видео ограничены 30 секундами и 30 MiB. Каждое открытое приложение может сохранять три захвата; хэндлы истекают через десять минут и удаляются при освобождении или закрытии приложения. readMedia(id, offset) возвращает до 48 KiB как base64, с nextOffset и eof. Хэндл принадлежит только экземпляру приложения, который его создал. Захват не предоставляет доступ к фото-библиотеке или камере в фоновом режиме.

Хэндл unknown_method на более старых мобильных сборках, camera_denied, microphone_denied, media_limit, media_too_large, media_expired, bad_offset и совместно busy ошибка. Направьте пользователей в Настройки системы, если они отклонили разрешение. Загрузка захваченного контента, уведомления о конфиденциальности, хранение и модерация остаются на усмотрение разработчика'отвечает за это. Пакет npm SDK экспортирует те же четыре метода; его локальная мока по умолчанию отменяет захват и никогда не открывает настоящую камеру.

Автоматически переведено. Английский — источник истины. Читать на английском

Введите, чтобы искать по каждой странице, методу и точке окончания.