choco-app
Библиотека для взаимодействия веб-приложений с Choco SuperApp. Работает только в браузерном окружении.
Установка
npm install choco-app
Share
shareFile
Type: (base64: string, filename?: string, mime?: string) => void
Поделиться файлом формата Base64.
import { shareFile } from 'choco-app';
shareFile('data:image/png;base64', 'name', 'image/png');
shareImage
Type: (base64: string, filename?: string, mime?: string) => void
Поделиться картинкой формата Base64.
import { shareImage } from 'choco-app';
shareImage('data:image/png;base64', 'name', 'image/png');
shareText
Type: (text: string) => void
Поделиться текстом.
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
Принимает функцию, которую стоит выполнить при выходе приложения из фона.
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
Принимает функцию, которую стоит выполнить при закрытии клавиатуры.
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.
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') => Promise<string | undefined>
Авторизация пользователя по clientId.
Если пользователь не авторизован в нативном приложении, откроется окно авторизации с вводом номера телефона и кода.
В другом случае, метод сразу вернет ответ.
:warning: Вызов метода по type='code': вернет ошибку, если авторизация по code отсутствует в нативном приложении. Необходимо сделать обработку на ошибку.
import { authorize } from 'choco-app';
authorize('11111111', 'trackId').then(trackId => {
if (trackId) {
}
}));
authorize('11111111', 'code')
.then(code => {
if (code) {
}
})
.catch(error => {
if (error.message === 'NOT_SUPPORTED') {
}
})