@sinosun/lib
Version:
sinosun jsbridge and net toolkit
405 lines (298 loc) • 13.2 kB
JavaScript
;
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;