UNPKG

@sinosun/lib

Version:

sinosun jsbridge and net toolkit

405 lines (298 loc) 13.2 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault"); var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof")); var _defineProperty = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property")); var _promise = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/promise")); var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify")); var _assign = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/assign")); var __importDefault = void 0 && (void 0).__importDefault || function (mod) { return mod && mod.__esModule ? mod : { "default": mod }; }; (0, _defineProperty["default"])(exports, "__esModule", { value: true }); var bridgeAdapter_1 = __importDefault(require("./bridgeAdapter")); var NativeSupportApi = {}; var STOREDATA = { channelId: "", userInfo: null }; //描述:清除页面缓存的数据 //场景:app切换企业 页面中的缓存没有清除 获取的还是原企业的会出问题 //对应SnJSBridge接口:无 var clearStoreDataByKey = function clearStoreDataByKey(key) { var keyType = (0, _typeof2["default"])(STOREDATA[key]); switch (keyType) { case "string": STOREDATA[key] = ""; case "object": if (STOREDATA[key] instanceof Array) { STOREDATA[key] = []; } else { STOREDATA[key] = null; } default: STOREDATA[key] = void 0; } }; //描述:清除页面缓存的channelId userInfo //场景:app切换企业 页面中的缓存没有清除 获取的还是原企业的会出问题 //对应SnJSBridge接口:无 NativeSupportApi.clearStoreData = function (key) { if (key) { return clearStoreDataByKey(key); } for (var storeKey in STOREDATA) { clearStoreDataByKey(storeKey); } }; //描述:获取登录用户信息 //场景:如网络请求前获取统一获取用户的cpyId、uaid //对应SnJSBridge接口:GetUserInfoFunction NativeSupportApi.getCurrentUserInfo = function (data) { if (data === void 0) { data = {}; } return new _promise["default"](function (resolve) { var storeFlag = (0, _stringify["default"])(data) === "{}"; // 只有获取当前用户名的时候才会缓存 if (storeFlag && STOREDATA.userInfo) { return resolve(STOREDATA.userInfo); } bridgeAdapter_1["default"].callHandler('GetUserInfoFunction', data).then(function (Data) { if (storeFlag) { STOREDATA.userInfo = Data; } resolve(Data); }); }); }; NativeSupportApi.MultiUpload = function (fileList) { if (fileList === void 0) { fileList = []; } return new _promise["default"](function (resolve) { bridgeAdapter_1["default"].callHandler('MultiUploadFunction', { fileInfoList: fileList }).then(function (data) { if (0 === data.ret && data.responseData && data.responseData.length) { var index = 0; for (index; index < data.responseData.length; index++) { for (var idx = 0; idx < fileList.length; idx++) { fileList[idx]['compress'] = fileList[idx]['compress'] || false; if (data.responseData[index]['path'] === fileList[idx]['path'] && data.responseData[index]['compress'] === fileList[idx]['compress']) { data.responseData[index] = (0, _assign["default"])(data.responseData[index], fileList[idx]); break; } } } } resolve(data); }); }); }; //描述:根据cpyId、uaid查询用户信息 //场景:如查询用户名称、icon等信息 //对应SnJSBridge接口:QueryUserInfoFunction NativeSupportApi.queryUserInfoById = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('QueryUserInfoFunction', data); }; //描述:获取用户头像 //场景:mPaaS版本使用 //对应SnJSBridge接口:QueryUserIconFunction NativeSupportApi.queryUserIcon = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('QueryUserIconFunction', data); }; //描述:数据加密 //场景:https请求,可考虑去掉数据加解密,但有些银行使用安全工具扫描会有漏洞 //对应SnJSBridge接口:EncryptionFunction NativeSupportApi.encryptionData = function (data) { return bridgeAdapter_1["default"].callHandler('EncryptionFunction', data); }; //描述:数据解密 //场景:https请求,可考虑去掉数据加解密,但有些银行使用安全工具扫描会有漏洞 //对应SnJSBridge接口:DecryptionFunction NativeSupportApi.decryptionData = function (data) { return bridgeAdapter_1["default"].callHandler('DecryptionFunction', data); }; //描述:获取企业信息及状态 //场景:可改成从服务器查询,但效率低 //对应SnJSBridge接口:QueryCompanyDetailFunction NativeSupportApi.queryCompanyInfo = function (cpyInfo) { return bridgeAdapter_1["default"].callHandler('QueryCompanyDetailFunction', cpyInfo); }; //描述:调用app获取配置信息 //场景:如mstp host、prodId //对应SnJSBridge接口:GetAppConfigFunction NativeSupportApi.getAppConfig = function (data) { return new _promise["default"](function (reslove) { var storeFlag = (0, _stringify["default"])(data) === "{\"key\":\"tid\"}"; // 缓存产品id的请求 if (storeFlag && STOREDATA.channelId) { return reslove(STOREDATA.channelId); } bridgeAdapter_1["default"].callHandler('GetAppConfigFunction', data || {}).then(function (Data) { if (storeFlag) { STOREDATA.channelId = Data; } reslove(Data); }); }); }; //描述:检查当前网络情况 //对应SnJSBridge接口:CheckNetWorkFunction NativeSupportApi.checkNetWork = function () { return bridgeAdapter_1["default"].callHandler('CheckNetWorkFunction', ''); }; //描述:数据签名 //场景:审批表单签名,业务上可以考虑去掉 //对应SnJSBridge接口:SignDataFunction NativeSupportApi.signData = function (data) { return bridgeAdapter_1["default"].callHandler('SignDataFunction', data); }; //描述:实时监听gps信息 //场景:获取app的定位信息,主要在考勤使用 //对应SnJSBridge接口:LocationObserverFunction NativeSupportApi.locationObserver = function (data) { return bridgeAdapter_1["default"].callHandler('LocationObserverFunction', data); }; //描述:注册监听app的推送消息 //场景:如审批列表页面,收到审批推送消息,可自动刷新页面 //对应SnJSBridge接口:RegisterCommonPushFunction NativeSupportApi.registerCommonEvent = function () { return bridgeAdapter_1["default"].callHandler('RegisterCommonPushFunction', ''); }; //描述:H5通知APP消息 //场景:审批有未读消息通知app工作台标小红点 //对应SnJSBridge接口:SendActionFunction NativeSupportApi.sendMsgToApp = function (data) { return bridgeAdapter_1["default"].callHandler('SendActionFunction', data); }; //描述:H5通知app小应用动作事件 //场景:埋点相关,用于通知埋点事件 //对应SnJSBridge接口:notifyAppActionEvent NativeSupportApi.notifyAppActionEvent = function (data) { return bridgeAdapter_1["default"].callHandler('NotifyAppActionEvent', data); }; //描述:注册H5通知app页面名称(唯一key) //场景:埋点相关,用于审批申请页面埋点,同一个apply页面,需要通知app区分不同模板 //对应SnJSBridge接口:NotifyAppPageKeyFunction NativeSupportApi.setPageKey = function (pageName) { return bridgeAdapter_1["default"].callHandler('NotifyAppPageKeyFunction', { type: 2, pageKey: pageName }); }; //描述:通过完整文件url下载文件 //场景:部分应用有文件不在FS上,无法使用js fs接口下载,需要通过app下载(代发工资、批量转账模板文件)可考虑使用Filepreview预览接口扩展实现 //对应SnJSBridge接口:DownloadFunction NativeSupportApi.fileDownload = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('DownloadFunction', data); }; //描述:文件上传接口 //场景:解决mPaaS离线包js上传附件跨域问题,由app上传附件,仅mPaaS版本使用、北京微信小程序上传附件 //对应SnJSBridge接口:FileUploadFunction NativeSupportApi.fileUplod = function () { return bridgeAdapter_1["default"].callHandler('FileUploadFunction', ''); }; // 获取当前token信息 NativeSupportApi.getAccessToken = function (clientId, serviceName, // 是否更新token信息,true:更新; false: 不更新,仅获取 refresh) { return bridgeAdapter_1["default"].callHandler('GetAccessTokenFunction', { clientId: clientId, serviceName: serviceName, refresh: refresh }); }; //描述:打开小应用接口 //场景:费用报销导入商城明细,传入小应用id和要打开页面的url,由app打开应用的具体页面 //对应SnJSBridge接口:OpenAppletFunction NativeSupportApi.openApplet = function (data) { return bridgeAdapter_1["default"].callHandler('OpenAppletFunction', data); }; //---------------------------------------------------------------- //描述:用于对原数据先组装XML再取hash值 //场景:用于对原数据先组装XML再取hash值 //对应SnJSBridge接口:TPayXMLHashCodeFunction NativeSupportApi.tPayXMLHashCode = function (data) { return bridgeAdapter_1["default"].callHandler('TPayXMLHashCodeFunction', data); }; //描述:取参数 //场景:取参数 //对应SnJSBridge接口:GetPropertyFunction NativeSupportApi.getProperty = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('GetPropertyFunction', data); }; //描述:设置参数 //场景:设置参数 //对应SnJSBridge接口:PutPropertyFunction NativeSupportApi.putProperty = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('PutPropertyFunction', data); }; //描述:取TGC参数 //场景:取TGC参数 //对应SnJSBridge接口:GetSSOServerTGCFunction NativeSupportApi.getSSOServerTGC = function (data) { if (data === void 0) { data = {}; } return bridgeAdapter_1["default"].callHandler('GetSSOServerTGCFunction', data); }; /** * 注册推送 */ NativeSupportApi.registerCommonPushEvent = function (data) { return bridgeAdapter_1["default"].callHandler('RegisterCommonPushFunction', data || ''); }; // 获取wifi列表 NativeSupportApi.getNearWifiList = function (data) { return bridgeAdapter_1["default"].callHandler('GetNearWifiListFunction', data); }; // 获取位置 NativeSupportApi.getLocation = function (data) { return bridgeAdapter_1["default"].callHandler('GetLocationFunction', data); }; /** * js调用 Native 获取是否在考勤范围内 * @export */ NativeSupportApi.getPositionDistance = function (data) { return bridgeAdapter_1["default"].callHandler('GetPositionDistanceFunction', data); }; // 实时监听wifi信息 NativeSupportApi.netWorkObserver = function (data) { return bridgeAdapter_1["default"].callHandler('NetWorkObserverFunction', data); }; // 刷脸验证 NativeSupportApi.faceRecognition = function (data) { return bridgeAdapter_1["default"].callHandler('FaceRecognitionFunction', data); }; // 是否刷脸打卡 NativeSupportApi.getFaceStatus = function (data) { return bridgeAdapter_1["default"].callHandler('GetFaceStatusFunction', data); }; // 获取企业用户列表 NativeSupportApi.getUserCompanyList = function (data) { return bridgeAdapter_1["default"].callHandler('GetUserCompanyListFunction', data); }; // 获取企业状态 NativeSupportApi.getCompanyStatus = function () { return bridgeAdapter_1["default"].callHandler("GetCompanyStatusFunction", ""); }; /** * 伴正事分享 */ NativeSupportApi.shareQRCode = function (data) { return bridgeAdapter_1["default"].callHandler('ShareQRCodeFunction', data); }; // 保存图片 NativeSupportApi.saveQRCode = function (data) { return bridgeAdapter_1["default"].callHandler('SaveQRCodeFunction', data); }; /** * 方法名:FileUploadFunction * 入参: * 参数 类型 必选 说明 * getUploadUrl String 是 用于获取上传地址的请求url(绝对地址),由h5提供 * 返回: * 参数 类型 说明 * ret int 上传结果反馈,0成功,-1失败 * fileId String 文件的远程url * fileName String 文件名称 * fileSize long 单位bytef * */ NativeSupportApi.fileUpload = function (data) { return bridgeAdapter_1["default"].callHandler('FileUploadFunction', data); }; NativeSupportApi.fileUpload2 = function (data) { return bridgeAdapter_1["default"].fileUploadFunction(data); }; //描述:文件预览 //对应SnJSBridge接口:FilePreviewWidget //@param Object NativeSupportApi.filePreview = function (previemJson) { return bridgeAdapter_1["default"].callHandler('PreviewFunction', previemJson); }; exports["default"] = NativeSupportApi;