para-bridge-demo
Version:
a bridge api for js-ios/andriod rest
48 lines (41 loc) • 1.35 kB
text/typescript
import { BridgePlugin } from '../bridge';
interface IScanBankCardParam {
// true直接启动扫描模式,不打开新ACTIVITY,将结果返回
scanMode: 'quick' | 'activity';
}
interface IBankCardInfo {
// 银行卡号信息
cardNo: string;
// 银行卡图片,H5自动记录
idCardImgBase64: string;
}
// 针对NTV返回的报文协议定义
interface IScanBankCardResult {
// 0:识别成功 1:识别失败 2:授权失败 3:取消
status: '0' | '1' | '2' | '3';
// true直接启动扫描模式,不打开新ACTIVITY,将结果返回
scanMode: 'quick' | 'activity';
// 银行卡信息
cardInfo: IBankCardInfo;
}
export class ScanBankCard<K> extends BridgePlugin<IScanBankCardParam, K>{
protected get ntvPluginName() {
return '_ntv_util_scan_bank_card';
}
protected get availableMinVersion() {
return '1.0.0';
}
protected bridgeExecChrome(pluginName?: string | undefined): void {
// 可针对不同运行环境实现特定的调用逻辑来MOCK,弥补平台差异性.
throw new Error('brigeExecChrome() 未针对当前环境实现');
}
}
/**
* 扫描银行卡
* @returns Promise<IScanBankCardResult>
*/
export const scanBankCard = (param: IScanBankCardParam) => {
return new ScanBankCard<IScanBankCardResult>(param).invokeOnce().then(result => {
return result.cbData;
})
}