UNPKG

para-bridge-demo

Version:

a bridge api for js-ios/andriod rest

62 lines (54 loc) 1.58 kB
import { BridgePlugin } from '../bridge'; interface IUserLoginParam { mobile?: string; // 打开样式,默认"1":登录对话框; openType?: '1'; // 是否强制登陆显示登录框, 默认true. forceLogin?: 'true' | 'false'; } interface IUserLoginResult { // 0:标识已登陆成功, 1:未登录(登录失败,取消等) status: '0' | '1'; userInfo?: { // 姓名 realName: string; // 上次登录名 lastLoginTime?: string; // 性别 gender: string; // 昵称 nickName: string; // 头像 photo: string; // userId userId: string; }; } export class UserLogin<K> extends BridgePlugin<IUserLoginParam, K> { protected get ntvPluginName() { return '_ntv_user_user_login'; } protected get availableMinVersion() { return '1.0.0'; } protected bridgeExecChrome(pluginName?: string | undefined): void { // 可针对不同运行环境实现特定的调用逻辑来MOCK,弥补平台差异性. throw new Error('UserLogin() 未针对当前环境实现'); } } /** * 强制用户登陆,如果用户已经登陆则返回用户信息 */ export const forceLogin = () => { return new UserLogin<IUserLoginResult>({ forceLogin: 'true' }).invokeOnce().then(result => { return result.cbData; }); } /** * 尝试用户登陆,如果用户已经登陆则返回用户信息,如果未登录则返回空的用户数据 */ export const tryLogin = () => { return new UserLogin<IUserLoginResult>({ forceLogin: 'false' }).invokeOnce().then(result => { return result.cbData; }); }