UNPKG

@sinosun/lib

Version:

sinosun jsbridge and net toolkit

255 lines (187 loc) 8.69 kB
"use strict"; 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;