static

android-webview.js 10KB

    // 执行匿名方法,代码隔离,方便定义局部变量 (function () { // 依赖IPU框架js:需要先引入ipu-mobile.js // 身份证设备连接配置缓存key var cardDeviceTypeKey = 'cardreader_type'; // 身份证读取设备类型缓存key var cardConnectTypeKey = 'cardreader_connection'; // 身份证读取设备连接方式缓存key // SIM设备连接配置缓存key var simDeviceTypeKey = 'simreader_type'; // sim读取设备类型缓存key var simConnectTypeKey = 'simreader_connection'; // sim读取设备连接类型缓存key var simBtAddress = 'simreader_btn_address'; // sim读取蓝牙设备地址缓存key window.AndroidWebView = { /** * 设置身份证读卡器类型 * @param {string} type 读卡器类型,SR/SYD/ZYZX分别代表森锐/三元达/中移在线 */ setCardReaderType: function (type) { IpuMobile.setMemoryCache(cardDeviceTypeKey, type); }, /** * 设置身份证读卡器连接方式 * @param {string} connection 连接方式 bt\otg\nfc */ setCardReaderConnection: function (connection) { IpuMobile.setMemoryCache(cardConnectTypeKey, connection); }, /** * 设置sim读卡器设备类型 * @param {string} deviceType 设备类型 */ setSimReaderDeviceType: function (deviceType) { IpuMobile.setMemoryCache(simDeviceTypeKey, deviceType); }, /** * 设置sim读卡器连接方式 * @param {string} connectType 设备连接方式 */ setSimReaderConnection: function (connectType) { IpuMobile.setMemoryCache(simConnectTypeKey, connectType); }, /** * 设置sim读卡器蓝牙地址,可通过 AndroidWebView.btDeviceList()获取 * @param {string} btnAddress 蓝牙设备地址 */ setSimReaderBtnAddress: function (btnAddress) { IpuMobile.setMemoryCache(simBtAddress, btnAddress); }, /** * 读取身份证读卡器设备连接配置,蓝牙参数在设备驱动中配置不用传参 * * @param {function} callback 回调函数 * @param {string} callback.deviceType 设备类型 * @param {string} callback.connectType 连接类型 */ getCardReaderConfig: function (callback) { IpuMobile.getMemoryCache(function (cacheResult) { // deviceType, connectType存储在缓存,不直接通过调用传递参数 cacheResult = JSON.parse(cacheResult); var deviceType = cacheResult[cardDeviceTypeKey]; var connectType = cacheResult[cardConnectTypeKey]; callback(deviceType, connectType); }, [cardDeviceTypeKey, cardConnectTypeKey]); }, /** * 读取SIm蓝牙设备连接配置 * * @param {function} callback 回调函数 * @param {string} callback.deviceType 设备类型 * @param {string} callback.connectType 连接类型 * @param {string} callback.btnAddress 设备蓝牙地址 */ getSimReaderConfig: function (callback) { // 如需使用js内存缓存,可修改此方法,不用每次读取App缓存 IpuMobile.getMemoryCache(function (cacheResult) { // deviceType, connectType存储在缓存,不直接通过调用传递参数 cacheResult = JSON.parse(cacheResult); var deviceType = cacheResult[simDeviceTypeKey]; var connectType = cacheResult[simConnectTypeKey]; var btnAddress = cacheResult[simBtAddress]; callback(deviceType, connectType, btnAddress); }, [simDeviceTypeKey, simConnectTypeKey, simBtAddress]); }, /** * 获取蓝牙设备地址 * * @param {function} callback 获取蓝牙回调函数 * @param {string} callback.result 蓝牙设备地址信息 */ btDeviceList: function (callback) { IpuMobile.btDeviceList(callback); }, /** * 获取客户端版本信息 * * @param {function} callback 回调函数 * @param {string} callback.version 回调函数参数,客户端版本信息,如1.9.3 */ getAppVesion(callback) { IpuMobile.getAppVersion(function (result) { callback(result); }) }, /** * 获取设备信息 * * @param {function} callback 回调函数 * @param {Object} callback.result 回调函数参数,设备信息 * @param {string} callback.result.deviceType 设备类型,如 Huawei mate 20 * @param {string} callback.result.imei 设备imei信息 */ getDeviceId: function (callback) { var sysInfo = {}; var count = 0; // 触发最终回调 function toBack() { var info = {}; info.imei = sysInfo.IMEI; info.deviceType = sysInfo.BRAND + ' ' + sysInfo.MODEL; callback(info); } // 取手机信息 function getSysInfo(name) { count++; IpuMobile.getSysInfo(function (result) { sysInfo[name] = result; count--; if (count == 0) { // 所有插件调用都已返回结果 toBack() } }, name); } getSysInfo('IMEI'); // imei getSysInfo('MODEL'); // 型号 getSysInfo('BRAND'); // 品牌 }, /** * 获取设备定位 * * @param {function} callback 回调函数 * @param {Object} callback.result 回调函数参数,位置信息 * @param {string} callback.result.address 位置地址 * @param {string} callback.result.lon 经度 * @param {string} callback.result.lat 炜度 */ getLocation: function (callback) { // IpuMobile.location(function (result) { result = JSON.parse(result); var info = { address: result.Address, lon: result.Longitude, lat: result.Latitude }; callback(info); }); }, /** * 读取身份证 * 回调方法 getIdCardInfoResult(result),回调参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * @param {string} callbackKey 回调函数名称 */ getIdCardInfo: function (callbackKey) { // this.getCardAndUp(callbackKey, ''); // isTakePictur传空,即非0非1 }, /** * 拍照 * 回调方法 getPhotoResult(result),回调参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * @param {string} callbackKey */ getPhotoInfo: function (callbackKey) { IpuMobile.getPhoto(function (result) { window.getPhotoResult({ errorCode: '0', img: result, callBackMethodName: callbackKey }) }, 0); // 0返回base64字符串,1返回图片文件路径 }, /** * 拍照上传身份证? * 回调方法 getCardAndUpResultList(result)?,参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * @param {string} callbackKey 回调函数名 * @param {number} isTakePicture 是否需要拍照,1拍,0非白, * @param {string} opId 操作员工号 * @param {string} timeStamp 时间戳 */ getCardAndUp: function (callbackKey, isTakePicture, opId, timeStamp) { this.getCardReaderConfig(function (deviceType, connectType) { IpuMobile.getCardAndUp(function (result) { // IPU插件不直接返回json对象,只返回json字符串 result = JSON.parse(result); if (result.code && !result.errorCode) { // 客户端返回的字段是code,项目使用字段是errorCode result.errorCode = result.code } result.CallBackMethod = callbackKey; window.getCardAndUpResultList && window.getCardAndUpResultList(result); }, deviceType, connectType, isTakePicture, opId, timeStamp); }); }, /** * 写卡 * 回调方法 getWriteCardResult(result)?,参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * @param {string} accessNum 手机号友 * @param {string} operId 操作员工号 * @param {string} orgId 部门id * @param {string} regionId 路由地州编码 */ WriteCard: function (accessNum, operId, orgId, regionId) { }, /** * 携转写卡 * 回调方法 getWriteMNPCardResult(result)?,参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * 参数同WriteCard方法 */ WriteMNPCard: function (accessNum, operId, orgId, regionId) { }, /** * ⽆纸化订单上传 * 回调方法 getAizhiResult(result)?,参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * * @param {string} str xml字符串?json字符串? */ upAizhiInfo: function (str) { IpuMobile.upAizhiInfo(str, function (result) { // TIMESTAMP与OPID字段看插件有没有返回 window.getAizhiResult && window.getAizhiResult(result); }); }, /** * 读卡(好像变动了) * 回调方法 getCardInfoResult,参数参考 https://docs.qq.com/sheet/DQXl1Q2JDYW53SHBr?tab=BB08J2 * */ GetCardInfo: function () { }, /** * 打开文件,是下载远程文件? * 没有回调? * * @param {string} path 文件路径?远程或本地? * @param {string} sid 无说明文档,代码参数例子 'WADE_SID=83802938302029392-39303' */ openFile: function (path, sid) { }, /** * 读取SIM卡空卡序列号 * * @param {function} callback 回调函数 * @param {string} callback.result 空卡序列号 */ getCardSN: function (callback) { this.getSimReaderConfig(function (deviceType, connectType, btnAddress) { IpuMobile.getCardSN(callback, deviceType, connectType, {btnAddress: btnAddress}); }); }, /** * 读取SIM卡ICCID信息 * * @param {function} callback 回调函数 * @param {string} callback.result ICCID信息 */ getICCID: function (callback) { this.getSimReaderConfig(function (deviceType, connectType, btnAddress) { IpuMobile.getICCID(callback, deviceType, connectType, {btnAddress: btnAddress}); }); }, /** * 读取SIM卡IMSI信息 * * @param {function} callback 回调函数 * @param {string} callback.result IMSI信息 */ getIMSI: function (callback) { this.getSimReaderConfig(function (deviceType, connectType, btnAddress) { IpuMobile.getIMSI(callback, deviceType, connectType, {btnAddress: btnAddress}); }); } }; })();