UNPKG

para-bridge-demo

Version:

a bridge api for js-ios/andriod rest

50 lines (40 loc) 1.25 kB
import { BridgePlugin } from '../bridge'; import { get } from 'para-utils'; interface IScanParam { scanType: 'qrCode'; // 'qrCode',默认二维码 // 扫描结果, needResult='1',才有返回内容 needResult: '0' | '1'; } export interface IScanResult { // 扫描结果, needResult='1',才有返回内容 resultStr: string; // 'https://domain.com' } export class Scan<K> extends BridgePlugin<IScanParam, K>{ protected get ntvPluginName() { return '_ntv_util_scan'; } protected get availableMinVersion() { return '1.0.0'; } protected bridgeExecChrome(pluginName: string | undefined): void { // 可针对不同运行环境实现特定的调用逻辑来MOCK,弥补平台差异性. throw new Error('Scan() 未针对当前环境实现'); } } /** * 扫一扫 需result * @param param IScanParam * @returns IScanResult */ export const scanWithResult = () => { return new Scan<IScanResult>({ scanType: 'qrCode', needResult: '1' }).invokeOnce().then((result) => { return get(result.cbData, 'resultStr', ''); }); }; /** * 扫一扫 无需result * @param param IScanParam */ export const scan = () => { new Scan<void>({ scanType: 'qrCode', needResult: '0' } as IScanParam).invoke(); }