@sinosun/lib
Version:
sinosun jsbridge and net toolkit
255 lines (187 loc) • 8.69 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
var _defineProperty = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/define-property"));
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/json/stringify"));
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 BrowserApi = {}; // 定义变量存储当前的title信息
var currentTitleInfo = {}; // 定义变量存储当前的菜单信息
var currentMenuList = []; // 定义变量存储当前的菜单主题信息
var currentTitleBarTheme = {}; // 暴露外部获取title信息的方法
BrowserApi.getCurrentTitleInfo = function () {
return currentTitleInfo;
}; // 暴露外部获取menuList信息的方法
BrowserApi.getCurrentMenuList = function () {
return currentMenuList;
}; // 暴露外部获取titleBarTheme信息的方法
BrowserApi.getCurrentTitleBarTheme = function () {
return currentTitleBarTheme;
}; //描述:刷新页面
//场景:主要处理H5页面内部发起的页面刷新事件,主要是 错误提示页面的 “刷新按钮”
//对应SnJSBridge接口:ReloadPageFunction
BrowserApi.callHandler = function (method, data) {
return bridgeAdapter_1["default"].callHandler(method, data);
};
/**
* 注册浏览器处理事件
*/
BrowserApi.registerHandler = function (event, callback) {
bridgeAdapter_1["default"].registerHandler(event, callback);
}; //描述:刷新页面
//场景:主要处理H5页面内部发起的页面刷新事件,主要是 错误提示页面的 “刷新按钮”
//对应SnJSBridge接口:ReloadPageFunction
BrowserApi.reloadPage = function () {
return bridgeAdapter_1["default"].callHandler('ReloadPageFunction', '');
};
/**
* 注册页面刷新事件
* @param {*} callback
*/
BrowserApi.registPageRefreshEvent = function (callback) {
bridgeAdapter_1["default"].registerHandler('refreshPage', callback);
}; //描述:注册回调处理事件
//场景:用于告知客户端,H5页面需要自己处理返回,mPaaS也是一样的处理方案
//对应SnJSBridge接口:notifyAppBackEvent
BrowserApi.registeAppBackEvent = function (callback) {
bridgeAdapter_1["default"].callHandler('notifyAppBackEvent', '');
bridgeAdapter_1["default"].registerHandler('notifyAppBack', callback);
}; //描述:刷新页面
//场景:主要处理H5页面内部发起的页面刷新事件,主要是 错误提示页面的 “刷新按钮”
//对应SnJSBridge接口:goBackFunction
//@param
//url:目标页面的url, 为''时关闭当前页
//backSteps:当前页面回退步数
//loadData:传递给目标页面的数据
BrowserApi.goBack = function (url, backSteps, loadData) {
if (backSteps === void 0) {
backSteps = undefined;
}
if (loadData === void 0) {
loadData = '';
}
bridgeAdapter_1["default"].goBack(url, backSteps, loadData);
}; // mjCode
BrowserApi.setTitle = function (data) {
// 我们要存储当前设置的title对象 针对页面回退重置
currentTitleInfo = data;
bridgeAdapter_1["default"].callHandler('SetTitleFunction', data);
}; //描述:title栏注册菜单
//对应SnJSBridge接口:RegisterMenuFunction
//@param List<MenuItem>
// MenuItem {
// String name; // 如果是菜单,用name显示菜单文字
// String iconNormalBase64; // 如果是图标按钮,用来显示 正常图标(JS交互时,用base64转码,如果图片超过5k,提出来让UI重新切图)
// String iconPressedBase64; // 如果是图标按钮,用来显示 按下效果 图标(JS交互时,用base64转码,如果图片超过5k,提出来让UI重新切图)
// String menuId; //必填 菜单ID (不区分是 图标按钮 或是 菜单项),列表中的menuId必须相互唯一
// Int type; // 必填 类型 1 ActionBar上的图标按钮,2 下拉菜单项 3 title显示(一般情况下,只有一个图标按钮,可以有多个下拉菜单项)
// }
// 注意
// name 和 iconNormalBase64 至少需要填写一个;
// name 和iconNormalBase64 都有值时ActionBar上的按钮优先显示name,下拉菜单项会左边显示图标,右边显示name;
// 当有多个type 为1的item时,app会取第一个值;
// 下拉菜单项显示顺序默认按menuList的顺序排序;
//_this.initTitle = ['考勤统计',{name:'设置',menuId:'but_1_1',type: 1,func:function(){openPage('setting.html')}}];
BrowserApi.registerMenu = function (menuList) {
// 我们要存储当前设置的menuList对象 针对页面回退重置
currentMenuList = menuList;
bridgeAdapter_1["default"].registerMenu(menuList);
}; //描述:打开app页面
//场景:扫描二维码、选择联系人等
//对应SnJSBridge接口:OpenActionFunction
//@param String
BrowserApi.openAppPage = function (str) {
return bridgeAdapter_1["default"].callHandler('OpenActionFunction', str);
}; //描述:调用app通用弹框
//场景:提示框,如确认提交 弹框
//对应SnJSBridge接口:CommonDialogFunction
//@param Object
BrowserApi.popAppCommonDialog = function (confirmJson) {
return bridgeAdapter_1["default"].callHandler('CommonDialogFunction', (0, _stringify["default"])(confirmJson));
}; //描述:调用app通用弹框
//场景:弹出菜单,如保存草稿
//对应SnJSBridge接口:PopMenuFunction
//@param Object
BrowserApi.popAppMenuDialog = function (appData) {
return bridgeAdapter_1["default"].callHandler('PopMenuFunction', appData);
}; //描述:弹窗打开页面
//场景:PC客户端打开独立页面,仅PC使用
//对应SnJSBridge接口:PopWindowFunction
//@param url
BrowserApi.popWindow = function (targetUrl) {
bridgeAdapter_1["default"].callHandler('PopWindowFunction', (0, _stringify["default"])({
url: targetUrl
}));
}; //描述:js调用 Native 省市选择弹窗
//场景:转账选择省市
//对应SnJSBridge接口:SelectProvinceWidget
//@param url
BrowserApi.openSelectProvinceWidget = function (provinceListAll) {
return bridgeAdapter_1["default"].callHandler('SelectProvinceWidgetFunction', provinceListAll);
}; //描述:文件预览
//对应SnJSBridge接口:FilePreviewWidget
//@param Object
BrowserApi.filePreview = function (previemJson) {
return bridgeAdapter_1["default"].callHandler('PreviewFunction', previemJson);
};
/**
* 获取当前url的参数
*/
BrowserApi.getUrlParams = function (key, urlParams) {
return bridgeAdapter_1["default"].getUrlParam(key, urlParams);
}; // 从app获取真实线上地址
BrowserApi.getHost = function (data) {
return bridgeAdapter_1["default"].callHandler('GetHostFunction', data);
};
/**
* 获取当前实际域名
*/
BrowserApi.getRealHost = function (key) {
return bridgeAdapter_1["default"].getRealHost(key);
};
/**
* 打开小应用,如果小应用入口地址不能配置全,需要做处理
*/
BrowserApi.openAppRoute = function () {
return bridgeAdapter_1["default"].openAppRoute();
}; //描述:修改title
//对应SnJSBridge接口:SetTitleBarThemeFunction
//@param Object
BrowserApi.setTitleBarTheme = function (data) {
currentTitleBarTheme = data;
return bridgeAdapter_1["default"].callHandler('SetTitleBarThemeFunction', data);
}; //描述:跳转页面
//对应SnJSBridge接口:openPage,
//target: "_self"当前页面重定向,"_blank"新页面打开(目前使用app打开页面都是多开,未使用该参数)
//@param String
BrowserApi.openPage = function (url, target) {
return bridgeAdapter_1["default"].openPage(url, target);
}; //描述:监听wifi
//对应SnJSBridge接口:NetWorkNotify
//@param Object
BrowserApi.registerNetWorkNotify = function (callback) {
return bridgeAdapter_1["default"].registerHandler('NetWorkNotify', callback);
}; //描述:监听地理位置信息
//对应SnJSBridge接口:LocationNotify
//@param Object
BrowserApi.registerLocationNotify = function (callback) {
return bridgeAdapter_1["default"].registerHandler('LocationNotify', callback);
}; //描述:选择联系人
//@param Object
BrowserApi.selectContact = function (data) {
return bridgeAdapter_1["default"].selectContact(data);
}; //描述:选择联系人
//@param Object
BrowserApi.scanQrcode = function (data) {
if (data === void 0) {
data = {};
}
return bridgeAdapter_1["default"].scanQrcode(data);
};
exports["default"] = BrowserApi;