@xmini/x-mini
Version:
封装小程序
268 lines (239 loc) • 10.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.SCENES = exports.lifecycle = exports.objMe = void 0;
var _storage = require("../core/storage");
var _index = require("../utils/index");
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
// import queue from '../core/queue';
// 系统相关
var storageSystem = new _storage.Storage('system', 31536000); // 适配小程序方法等
// 增强方法或属性全使用$开头
// - $storage 优化缓存设置
// - $getSystemInfo 获取系统信息
// - $getCurPage() 获取当前页面
// - $getPageInfo() 获取当前页面信息,如 pageName pagePath pageQuery
// 微信小程序是否是并发6个,怎么判断,目前在开发者工具上是6个(这个可能和浏览器有关系 http/1.1)
var objMe = {
name: 'wxapp',
getCurrentPages: function (_getCurrentPages) {
function getCurrentPages() {
return _getCurrentPages.apply(this, arguments);
}
getCurrentPages.toString = function () {
return _getCurrentPages.toString();
};
return getCurrentPages;
}(function () {
return getCurrentPages();
}),
// 兼容处理微信小程序和支付宝小程序的差异
init: function init() {
/* eslint no-global-assign: 0 */
wx = Object.assign({}, wx);
var me = wx; // const request = me.request;
// Object.defineProperty(me, 'request', {
// get() {
// return queue(request, 10);
// },
// });
me.$storage = _storage.storage;
me.$getUUID = function () {
var uid = storageSystem.get('uuid');
if (!uid) {
uid = (0, _index.uuid)(32);
storageSystem.set('uuid', uid); // $log.set({ is_first_open: true });
} // console.warn(':::uuid:', uid);
return uid;
};
me.$getSystemInfo = function () {
var systemInfo = storageSystem.get('systemInfo');
if (!systemInfo) {
systemInfo = me.getSystemInfoSync();
storageSystem.set('systemInfo', systemInfo, 86400 * 365);
}
return systemInfo;
}; // 此方法没必要缓存,因为网络状态随时可手动变
// me.$getNetworkType = (cb) => {
// let natworkType = storageSystem.get('natworkType');
// if (!natworkType) {
// me.getNetworkType({
// success(res) {
// storageSystem.set('natworkType', res.natworkType);
// cb && cb(res);
// },
// fail(err) {
// cb && cb({});
// },
// });
// } else {
// cb && cb({
// natworkType,
// });
// }
// };
me.$getLocation = function (cb) {
var location = storageSystem.get('location');
if (!location) {
me.getLocation({
type: 'wgs84',
// wxapp
// type: 1, // aliapp
// cacheTimeout: '600', // aliapp 默认30秒
success: function success(res) {
// 缓存15分钟
storageSystem.set('location', res, 600);
cb && cb(res);
},
fail: function fail(err) {
cb && cb({});
}
});
} else {
cb && cb(location);
}
};
me.$getCurPage = function () {
var pages = getCurrentPages();
var length = pages.length;
if (!length) return {};
var currentPage = pages[length - 1] || {};
return currentPage;
};
me.$getPageInfo = function () {
var currentPage = me.$getCurPage();
var _currentPage$route = currentPage.route,
route = _currentPage$route === void 0 ? '' : _currentPage$route,
_currentPage$$pageQue = currentPage.$pageQuery,
$pageQuery = _currentPage$$pageQue === void 0 ? {} : _currentPage$$pageQue;
return {
pageQuery: _objectSpread({}, $pageQuery),
pagePath: route,
pageName: route.split('/').reverse()[0] || '',
referer: ''
};
};
return me;
}
}; // 生命周期回调、事件处理函数
exports.objMe = objMe;
var lifecycle = {
app: {
onLaunch: function onLaunch() {},
// 小程序初始化完成时(全局只触发一次)
onShow: function onShow() {},
// 小程序启动,或从后台进入前台显示时
onHide: function onHide() {},
// 小程序从前台进入后台时
onError: function onError() {},
// 小程序发生脚本错误,或者 api 调用失败时触发,会带上错误信息
onPageNotFound: function onPageNotFound() {} // 小程序要打开的页面不存在时触发,会带上页面信息回调该函数
},
page: {
onLoad: function onLoad() {},
// 监听页面加载
onShow: function onShow() {},
// 监听页面显示
onReady: function onReady() {},
// 监听页面初次渲染完成
onHide: function onHide() {},
// 监听页面隐藏
onUnload: function onUnload() {},
// 监听页面卸载
// onPullDownRefresh() {}, // 监听用户下拉动作
// onReachBottom() {}, // 页面上拉触底事件的处理函数
onShareAppMessage: function onShareAppMessage() {},
// 用户点击右上角转发
// onPageScroll() {}, // 页面滚动触发事件的处理函数
// onResize() {}, // 页面尺寸改变时触发,详见 响应显示区域变化
onTabItemTap: function onTabItemTap() {} // 当前是 tab 页时,点击 tab 时触发
} // component: {
// lifetimes: {
// created() {}, // 在组件实例刚刚被创建时执行 1.6.3
// attached() {}, // 在组件实例进入页面节点树时执行 1.6.3
// ready() {}, // 在组件在视图层布局完成后执行 1.6.3
// moved() {}, // 在组件实例被移动到节点树另一个位置时执行 1.6.3
// detached() {}, // 在组件实例被从页面节点树移除时执行 1.6.3
// error() {}, // 每当组件方法抛出错误时执行 2.4.1
// },
// pageLifetimes: {
// show() {}, // 页面被展示
// hide() {}, // 页面被隐藏
// resize() {}, // 页面尺寸变化
// },
// },
}; // 场景值 https://developers.weixin.qq.com/miniprogram/dev/framework/app-service/scene.html
exports.lifecycle = lifecycle;
var SCENES = {
'1001': '发现栏小程序主入口,「最近使用」列表(基础库2.2.4版本起包含「我的小程序」列表)',
'1005': '顶部搜索框的搜索结果页',
'1006': '发现栏小程序主入口搜索框的搜索结果页',
'1007': '单人聊天会话中的小程序消息卡片',
'1008': '群聊会话中的小程序消息卡片',
'1011': '扫描二维码',
'1012': '长按图片识别二维码',
'1013': '手机相册选取二维码',
'1014': '小程序模板消息',
'1017': '前往体验版的入口页',
'1019': '微信钱包',
'1020': '公众号 profile 页相关小程序列表',
'1022': '聊天顶部置顶小程序入口',
'1023': '安卓系统桌面图标',
'1024': '小程序 profile 页',
'1025': '扫描一维码',
'1026': '附近小程序列表',
'1027': '顶部搜索框搜索结果页「使用过的小程序」列表',
'1028': '我的卡包',
'1029': '卡券详情页',
'1030': '自动化测试下打开小程序',
'1031': '长按图片识别一维码',
'1032': '手机相册选取一维码',
'1034': '微信支付完成页',
'1035': '公众号自定义菜单',
'1036': 'App 分享消息卡片',
'1037': '小程序打开小程序',
'1038': '从另一个小程序返回',
'1039': '摇电视',
'1042': '添加好友搜索框的搜索结果页',
'1043': '公众号模板消息',
'1044': '带 shareTicket 的小程序消息卡片 详情',
'1045': '朋友圈广告',
'1046': '朋友圈广告详情页',
'1047': '扫描小程序码',
'1048': '长按图片识别小程序码',
'1049': '手机相册选取小程序码',
'1052': '卡券的适用门店列表',
'1053': '搜一搜的结果页',
'1054': '顶部搜索框小程序快捷入口',
'1056': '音乐播放器菜单',
'1057': '钱包中的银行卡详情页',
'1058': '公众号文章',
'1059': '体验版小程序绑定邀请页',
'1064': '微信连Wi-Fi状态栏',
'1067': '公众号文章广告',
'1068': '附近小程序列表广告',
'1069': '移动应用',
'1071': '钱包中的银行卡列表页',
'1072': '二维码收款页面',
'1073': '客服消息列表下发的小程序消息卡片',
'1074': '公众号会话下发的小程序消息卡片',
'1077': '摇周边',
'1078': '连Wi-Fi成功页',
'1079': '微信游戏中心',
'1081': '客服消息下发的文字链',
'1082': '公众号会话下发的文字链',
'1084': '朋友圈广告原生页',
'1089': '微信聊天主界面下拉,「最近使用」栏(基础库2.2.4版本起包含「我的小程序」栏)',
'1090': '长按小程序右上角菜单唤出最近使用历史',
'1091': '公众号文章商品卡片',
'1092': '城市服务入口',
'1095': '小程序广告组件',
'1096': '聊天记录',
'1097': '微信支付签约页',
'1099': '页面内嵌插件',
'1102': '公众号 profile 页服务预览'
};
exports.SCENES = SCENES;