Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

choco-app

Package Overview
Dependencies
Maintainers
3
Versions
15
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

choco-app

Библиотека для взаимодействия веб-приложений с Choco SuperApp. Работает только в браузерном окружении.

  • 1.7.0
  • npm
  • Socket score

Version published
Maintainers
3
Created
Source

choco-app

Библиотека для взаимодействия веб-приложений с Choco SuperApp. Работает только в браузерном окружении.

Установка

npm install choco-app

Share

shareFile

Type: (base64: string, filename?: string, mime?: string) => void

Поделиться файлом формата Base64.

base64

Type: string Картинка в формате Base64.

filename

Type: string Название файла.

mime

Type: string Тип файла.

import { shareFile } from 'choco-app';

shareFile('data:image/png;base64', 'name', 'image/png');

shareImage

Type: (base64: string, filename?: string, mime?: string) => void

Поделиться картинкой формата Base64.

base64

Type: string Картинка в формате Base64.

filename

Type: string Название файла.

mime

Type: string Тип файла.

import { shareImage } from 'choco-app';

shareImage('data:image/png;base64', 'name', 'image/png');

shareText

Type: (text: string) => void

Поделиться текстом.

text

Type: string Передаваемый текст.

import { shareText } from 'choco-app';

shareText('Hello World!');

Остальное

clearCache

Type: () => void

Очищает кэш приложения.

import { clearCache } from 'choco-app';

clearCache();

backToApplication

Type: () => void

Выход из веб-приложения обратно в нативное.

import { backToApplication } from 'choco-app';

backToApplication();

applicationBecomeActive

Type: (callback: Function) => void

Принимает функцию, которую стоит выполнить при выходе приложения из фона.

callback

Type: Function Любая функция.

import { applicationBecomeActive } from 'choco-app';

applicationBecomeActive(() => console.log('Вышел из фона'));

hapticSelection

Type: () => void

Вызывает нативную вибрацию.

import { hapticSelection } from 'choco-app';

hapticSelection();

isLocationEnabled

Type: () => boolean

Доступна ли геопозиция при использовании приложения.

import { isLocationEnabled } from 'choco-app';

isLocationEnabled();

onKeyboardClosed

Type: (callback: Function) => void

Принимает функцию, которую стоит выполнить при закрытии клавиатуры.

callback

Type: Function Любая функция.

import { onKeyboardClosed } from 'choco-app';

onKeyboardClosed(() => console.log('Вышел из фона'));

reload

Type: () => void

Обновление страницы с передачей в query следующих параметров: track_id, code, device_id, session_id и т.д.

import { reload } from 'choco-app';

reload();

getRefferalCode

Type: () => Promise<IRefferalCode>

Получение реферального кода.

import { getRefferalCode } from 'choco-app';

getRefferalCode().then(code => console.log(`Реферальный код: ${code}`));

openQR

Type: () => Promise<string>

Нативное считывание QR-кода.

import { openQR } from 'choco-app';

openQR().then(text => console.log(`QR-код: ${text}`));

pay

Type: (deeplink: string) => Promise<'success' | 'closed'>

Вызов оплаты через deeplink.

Type: string Ссылка на оплату в приложении.

import { pay } from 'choco-app';

pay('ссылка на оплату').then(status => {
    if (status === 'success') {
        console.log('Оплата прошла успешно')
    } else {
        console.log('Модальное окно оплаты закрыли')
    }
}));

requestGeoPermissionStatus

Type: () => Promise<GeoStatus>

Получение статуса геопозиции.

import { requestGeoPermissionStatus } from 'choco-app';

requestGeoPermissionStatus().then(status => {
    if (status === 'granted') {
        // Получить гео
    }
}));

authorize

Type: (clientId: string, type: 'code' | 'trackId', redirectUri?: string, state?: string) => Promise<string | undefined>

Авторизация пользователя по clientId. Если пользователь не авторизован в нативном приложении, откроется окно авторизации с вводом номера телефона и кода. В другом случае, метод сразу вернет ответ.

clientId

Type: string

Идентификатор вашего приложения.

type

Type: 'code' | 'trackId'

Тип авторизации.

redirectUri

Type: string

Используется, если авторизация через code. На этот адрес возвращается код авторизации. Необходимо получить доступы у дежурного.

state

Type: string

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

:warning: Вызов метода по type='code': вернет ошибку, если авторизация по code отсутствует в нативном приложении. Необходимо сделать обработку на ошибку.

import { authorize } from 'choco-app';

// Авторизация по trackId
authorize('11111111', 'trackId').then(trackId => {
    if (trackId) {
        // Сделать запрос на авторизацию
    }
}));

// Авторизация по code
authorize('11111111', 'code')
    .then(code => {
        if (code) {
            // Сделать запрос на авторизацию
        }
    })
    .catch(error => {
        if (error.message === 'NOT_SUPPORTED') {
            // Показать ошибку или вызвать authorize с типом trackId
        }
    })
openBarcodeScanner

Type: (formats: BarcodeFormat[], instructions: string[]) => Promise<string | 'manual'>

Открывает сканер штрихкодов. Возвращает строку с результатом сканирования или 'manual', если пользователь открыл ручной ввод.

formats

Type: BarcodeFormat[]

Массив форматов штрихкодов, которые нужно сканировать. По-умолчанию ['EAN_13', 'EAN_8', 'CODE_128'].

instructions

Type: string[]

Массив инструкций, которые будут показаны пользователю. По-умолчанию пустой массив.

import { openBarcodeScanner } from 'choco-app';
import { BarcodeFormat } from 'choco-app/dist/ts/enum';

openBarcodeScanner([BarcodeFormat.EAN_13, BarcodeFormat.EAN_8], ['Холодильник открыт', 'Возьмите товар', 'Наведите камеру на штрихкод']).then(result => {
    if (result === 'manual') {
        // Показать ручной ввод
    } else {
        // Успешное сканирование, штрихкод в result
    }
}));
isCameraPermissionEnabled

Type: () => Promise<boolean>

Проверяет, есть ли разрешение на использование камеры.

import { isCameraPermissionEnabled } from 'choco-app';

isCameraPermissionEnabled().then(isEnabled => {
    if (isEnabled) {
        // Разрешение есть
    } else {
        // Разрешения нет
    }
}));
logAmplitudeEvent

Type: (event: string, body: unknown) => boolean

Логирует событие в Amplitude.

event

Type: string

Название ивента аналитики.

body

Свойства ивента.

import { logAmplitudeEvent } from 'choco-app';

logAmplitudeEvent('event', { data: 'data' });

getNotificationStatus

Type: () => Promise<NotificationStatus>

Получение статуса о разрешенности уведомлений.

Статусы бывают granted | notDetermined | denied

import { getNotificationStatus } from 'choco-app';

getNotificationStatus().then(status => {
    if (status === 'granted') {
        // Когда уведомлений разрешены
    }
}));

requestNotificationStatus

Type: () => Promise<NotificationStatus>

Запрос на статусы о разрешенности уведомлений. Когда у юзера не определен или заблочен, этот метод отправляет юзера в настройки приложения Choco в телефоне

Статусы бывают granted | notDetermined | denied

import { requestNotificationStatus } from 'choco-app';

requestNotificationStatus().then(status => {
    if (status === 'granted') {
        // Когда уведомлений разрешены
    }
});

toastNotify

Type: (body: NotifyBody | string, title?: string, message?: string) => void

Показывает нативное уведомление в приложении. Первым параметром принимает либо объект, либо строку, которая является типом NotifyType, вторым параметром может принять заголовок уведомления, а третьим сообщение.

NotifyType может быть 'success' | 'info' | 'warning' | 'error'. Объект NotifyBody состоит из type (по умолчанию - 'success'), title, message.

import { toastNotify } from 'choco-app';

toastNotify({
    type: 'success',
    title: 'Title',
    message: 'Some message'
});

toastNotify('error', 'Title', 'Some message');
logAppsflyerEvent

Type: (event: string, body: unknown) => boolean

Логирует событие в appsflyer.

event

Type: string

Название ивента appsflyer.

body

Свойства ивента.

import { logAppsflyerEvent } from 'choco-app';

logAppsflyerEvent('event', { ... });

Keywords

FAQs

Package last updated on 26 Dec 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc