react-native-onepass-alibaba
Version:
此项目由[react-native-ali-onepass](https://github.com/yoonzm/react-native-ali-onepass) fork 而来
189 lines (160 loc) • 6.09 kB
TypeScript
import { EmitterSubscription } from 'react-native';
export type UIConfig = {
/** --start 仅限安卓 --- */
lightColor?: boolean, // 状态栏亮色或暗色
statusBarHidden?: true, // 状态栏显示与隐藏
pageBackgroundPath?: string, // 背景图片地址
/** --end 仅限安卓 --- */
// nav相关
navColor?: string, // nav颜色
navTextColor?: string, // nav文字颜色
navText?: string, // nav文字内容
navTextSize?: number, // nav文字大小
navHidden?: true, // nav显示与隐藏
// 协议webview配置
webNavColor?: string, // nav颜色
webNavTextColor?: string, // nav文字颜色
webNavTextSize?: number, // nav文字内容
navReturnImgPath?: string, // 返回按钮图片地址
// logo相关
logoImgPath?: string,
logoHidden?: boolean,
logoWidth?: number,
logoHeight?: number,
logoOffsetY?: number, // logo 竖直方向位置
// 手机号掩码
numberColor?: string,
numberSize?: number,
// slogan相关
sloganText?: string,
sloganTextColor?: string,
sloganTextSize?: number,
sloganOffsetY?: number,
// 登录按钮相关
logBtnText?: string,
logBtnTextColor?: string,
logBtnTextSize?: number,
logBtnMarginLeftAndRight?: number, // 登录按钮左右margin
// 登录按钮背景 ios
logBtnBackgroundPaths?: string[],
// 登录按钮背景 android
logBtnBackgroundPath?: string,
// 其他登录方式
switchAccText?: string,
switchAccTextSize?: number,
switchAccTextColor?: string,
// 协议栏
privacyBefore?: string, // 协议前面的文字
privacyEnd?: string, // 协议后面的文字
vendorPrivacyPrefix?: string, // 运营商协议前面的文字
vendorPrivacySuffix?: string, // 运营商协议后面的文字
checkboxHidden?: boolean, // checkBox框的显示和隐藏
privacyState?: boolean, // checkBox选中情况
appPrivacyOneName?: string, // 自定义协议的名称
appPrivacyOneUrl?: string, // 自定义协议的地址
appPrivacyTwoName?: string, // 自定义协议的名称
appPrivacyTwoUrl?: string, // 自定义协议的地址
appPrivacyThreeName?: string, // 自定义协议的名称
appPrivacyThreeUrl?: string, // 自定义协议的地址
privacyTextSize?: number,
appPrivacyBaseColor?: string,
appPrivacyColor?: string,
// 弹窗使用
dialogHeightDelta?: number,
alertBarHidden?: boolean,
alertBarCloseImgPath?: string,
alertBarCloseImgWidth?: number,
alertBarCloseImgHeight?: number,
}; // 提示:安卓端图片需要放在 drawable 下,ios端图片需要放在 Images.xcassets 下
/**
* 初始化
* @param businessId 初始化密钥
* @return {Promise<*>}
*/
export function init(businessId: string): Promise<any>;
/**
* 调用下面接口前先校验是否支持
* @return {Promise<*>}
*/
export function checkEnvAvailable(type: 1 | 2): Promise<any>;
/*******************************************(以下初始化后再调用)***********************************************/
/**
* 预加载
* @return {Promise<*>}
*/
export function prefetch(): Promise<any>;
/**
* 一键登录
* @return {Promise<*>}
*/
export function onePass(): Promise<any>;
/**
* 判断运营商类型 中国移动 中国联通 中国电信
* @return {Promise<string>} OPERATOR_TYPE
*/
export function getOperatorType(): Promise<string>;
/**
* 退出登录授权⻚ , 授权⻚的退出完全由 APP 控制, 注意需要在主线程调用此函数 !!!!
* @return {Promise<*>}
*/
export function quitLoginPage(): Promise<any>;
/**
* 退出登录授权⻚时,授权⻚的 loading 消失由 APP 控制
* @return {Promise<*>}
*/
export function hideLoginLoading(): Promise<any>;
/**
* 设置授权页面UI
* @param config
*/
export function setUIConfig(config: UIConfig): void;
export function setDialogUIConfig(config: UIConfig): void;
/**
* 支持的监听事件
* @type {{code, msg, requestCode, token, vendorName}}
*/
export const EVENTS: {
onTokenSuccess: 'onTokenSuccess',
onTokenFailed: 'onTokenFailed',
};
/**
* 返回值code
* @type {{"600000": number, "600001": number, "600002": number, "600004": number, "600005": number, "600007": number, "600008": number, "600009": number, "600010": number, "600011": number, "600012": number, "600013": number, "600014": number, "600015": number, "600017": number, "600021": number, "700000": number, "700001": number, "700002": number, "700003": number, "700004": number}}
*/
export const RESULT_CODES: {
TOKENSUCCESS: '600000', // 获取 token 成功
AUTHPAGESUCCESS: '600001', // 唤起授权⻚成功
SWITCHAUTHWAY: '700001', // 用户点击切换按钮
PTAVICY_CLICK: '700004', // 点击协议富文本文字事件
CHECKBOX_CLICCK: '700003',
DEVICE_SUPPORT: '600024',// 终端环境检查⽀持认证
600024: '600024', // 终端环境支持认证
600000: '600000', // 获取 token 成功
600001: '600001', // 唤起授权⻚成功
600002: '600002', // 唤起授权⻚失败
600004: '600004', // 获取运营商配置信息失败
600005: '600005', // 手机终端不安全
600007: '600007', // 未检测到 sim 卡
600008: '600008', // 蜂窝网络未开启
600009: '600009', // 无法判断运营商
600010: '600010', // 未知异常
600011: '600011', // 获取 token 失败
600012: '600012', // 预取号失败
600013: '600013', // 运营商维护升级,该功能不可用
600014: '600014', // 运营商维护升级,该功能已达最大调用次数
600015: '600015', // 接口超时
600017: '600017', // AppID 、 Appkey 解析失败
600021: '600021', // 点击登录时检测到运营商已切换
700000: '700000', // 点击返回,用户取消免密登录
700001: '700001', // 点击切换按钮,用户取消免密登录
700002: '700002', // 点击登录按钮事件
700003: '700003', // 点击 check box 事件
700004: '700004', // 点击协议富文本文字事件
};
/**
* 添加事件监听
* @param eventName 事件名
* @param cb 回调函数
* @return {*}
*/
export function addListener(eventName: string, cb: Function): EmitterSubscription;