vite-uni-dev-tool
Version:
vite-uni-dev-tool, debug, uni-app, 一处编写,到处调试
187 lines (171 loc) • 5.07 kB
TypeScript
declare namespace NFC {
type NfcType =
| 'ISO-DEP'
| 'MIFARE Classic'
| 'MIFARE Ultralight'
| 'NFC-A'
| 'NFC-B'
| 'NFC-F'
| 'NFC-V'
| 'Ndef'
| 'Ndef Formatable'
| '';
type Data = {
id: ArrayBuffer;
/**
* (
| 'ISO-DEP'
| 'MIFARE Classic'
| 'MIFARE Ultralight'
| 'NFC-A'
| 'NFC-B'
| 'NFC-F'
| 'NFC-V'
)
*/
techs: NfcType[];
/**
* ndef 数据
*/
ndefMessage?: string;
/** SAK */
sak?: number;
/** SAK 类型 */
sakType?: string;
sakHex?: string;
/** 最大数据传输长度 */
maxTransceiveLength?: number;
/** 卡类型 */
nfcType?: NfcType;
/** 读写标准 */
readWriteStandard?: string[];
/** 其他数据 */
[key: string]: any;
};
type TransformId = {
/** 卡片id 10进制字符串 */
byteArray: number[];
/** 卡片id 16进制字符串 */
hexArray: string[];
/** 卡片id 16进制字符串 */
hexString: string;
};
type Result = Data & TransformId;
type Atqa = {
atqa: ArrayBuffer;
errMsg: string;
};
type Sak = {
/**
* SAK 是 NFC 终端设备(如手机)与 NFC 标签通信时返回的一个字节数据
*
* 0x00 未指定类型
* 0x08 Mifare Classic 1K
* 0x09 Mifare Classic Mini
* 0x10 Mifare Plus
* 0x11 Mifare Classic 4K
* 0x18 Mifare Ultralight / Ultralight C
* 0x20 DESFire
*/
sak: number;
errno: number;
errMsg: string;
};
type MaxTransceiveLength = {
/** 最大传输长度 */
length: number;
errno: number;
errMsg: string;
};
type Connected = {
/** 标签是否连接 */
connected: boolean;
errno: number;
errMsg: string;
};
type FnOption<R = any, E = any> = {
success?: (result: R) => void;
fail?: (error: E) => void;
complete?: (res: R | E) => void;
};
type NdefData = {
/** uri 数组 */
uris?: any[];
/** text 数组 */
texts?: any[];
/** 二进制对象数组, 需要指明 id, type 以及 payload (均为 ArrayBuffer 类型) */
records?: any[];
};
type Instance = {
/** 连接 NFC 标签 */
connect: (options?: FnOption) => void;
/** 断开连接 */
close: (options?: FnOption) => void;
/** 设置超时时间 */
setTimeout: (options: ?(FnOption & { timeout: number })) => void;
/** 获取最大传输长度 */
getMaxTransceiveLength: (options?: FnOption<MaxTransceiveLength>) => void;
/**
* 写入数据
* 支持以以下类型
* ISO-DEP
* MIFARE Classic
* MIFARE Ultralight
* NFC-A
* NFC-B
* NFC-F
* NFC-V
*/
transceive?: (options: ?(FnOption & { data: ArrayBuffer })) => void;
/**
* 写入数据
* 支持以以下类型
* Ndef
*
*/
writeNdefMessage?: (options: ?(FnOption & NdefData)) => void;
/** 获取ATQA信息 */
getAtqa?: (options?: FnOption<Atqa>) => void;
/** 获取SAK信息 */
getSak?: (options?: FnOption<Sak>) => void;
/** 检测标签是否连接 */
isConnected?: (options?: FnOption<Connected>) => void;
};
type Adapter = {
/** 获取IsoDep实例,实例支持ISO-DEP (ISO 14443-4)标准的读写 */
getIsoDep: () => any;
/** 获取MifareClassic实例,实例支持MIFARE Classic标签的读写 */
getMifareClassic: () => any;
/** 获取MifareUltralight实例,实例支持MIFARE Ultralight标签的读写 */
getMifareUltralight: () => any;
/** 获取Ndef实例,实例支持对NDEF格式的NFC标签上的NDEF数据的读写 */
getNdef: (options?: FnOption) => NfcA;
/** 获取NfcA实例,实例支持NFC-A (ISO 14443-3A)标准的读写 */
getNfcA: (options?: FnOption) => any;
/** 获取NfcB实例,实例支持NFC-B (ISO 14443-3B)标准的读写 */
getNfcB: (options?: FnOption) => any;
/** 获取NfcF实例,实例支持NFC-F (JIS 6319-4)标准的读写 */
getNfcF: (options?: FnOption) => any;
/** 获取NfcV实例,实例支持NFC-V (ISO 15693)标准的读写 */
getNfcV: (options?: FnOption) => any;
/** 启用 nfc 模块 */
startDiscovery: (options?: FnOption) => void;
/** 停用 nfc 模块 */
stopDiscovery: () => void;
/** nfc 读取监听 */
onDiscovered: (callback: (res: NFC.Data) => void) => void;
/** nfc 移除监听 */
offDiscovered: (callback: (res: NFC.Data) => void) => void;
/** 安卓环境 判断适配器是否可用 */
isEnabled: () => boolean;
/** 安卓环境 停用前台调度 */
disableForegroundDispatch: (main: any) => void;
/** 安卓环境 启用前台调度 */
enableForegroundDispatch: (
main: any,
pendingIntent: any,
intentFiltersArray: any[],
techListsArray: any[] | null,
) => void;
};
}