You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.4 KiB
78 lines
2.4 KiB
10 months ago
|
// 读取小程序原版sdk
|
||
|
import QDTracker from '../packages/QDTracker-mp';
|
||
|
const QDTMini = {
|
||
|
// 提供扩展性
|
||
|
instance: QDTracker,
|
||
|
// 平台
|
||
|
uniPlatform: 'mp',
|
||
|
// 小程序分类
|
||
|
mpPltf: '',
|
||
|
// 提供初始化和配置参数
|
||
|
init(opt) {
|
||
|
QDTMini.adaptGlobalApi();
|
||
|
// 预留空间uni参数支持预加工
|
||
|
// 初始化
|
||
|
QDTracker.init({
|
||
|
...opt,
|
||
|
mpPltf: QDTMini.mpPltf,
|
||
|
});
|
||
|
},
|
||
|
// 覆写小程序全局应用
|
||
|
adaptGlobalApi() {
|
||
|
// 确定全局变量
|
||
|
// #ifdef MP-WEIXIN || MP-ALIPAY || MP-BAIDU
|
||
|
// #ifdef MP-WEIXIN
|
||
|
QDTMini.mpPltf = 'wx';
|
||
|
// #endif
|
||
|
|
||
|
// #ifdef MP-BAIDU
|
||
|
QDTMini.mpPltf = 'smart';
|
||
|
// #endif
|
||
|
|
||
|
// #ifdef MP-ALIPAY
|
||
|
QDTMini.mpPltf = 'alipay';
|
||
|
// #endif
|
||
|
|
||
|
// 通过额外绑定进行补充
|
||
|
// console.log('onload');
|
||
|
// #endif
|
||
|
},
|
||
|
// 覆写小程序页面应用
|
||
|
adaptPageApi(pageOpt) {
|
||
|
QDTracker.startPageMonitor(pageOpt, QDTracker);
|
||
|
},
|
||
|
// uni的页面page级别操作,专门用于页面级混入
|
||
|
QDTMixin: {
|
||
|
methods: {
|
||
|
// 重写的方法,例如 onLoad
|
||
|
customOnLoad(pageVm) {
|
||
|
// 在这里添加您的自定义逻辑
|
||
|
// 1. 页面包含自定义组件时,需要额外注册(自定义组件嵌套同理)
|
||
|
const traverseChildren = children => {
|
||
|
(children || []).forEach(child => {
|
||
|
QDTMini.adaptPageApi(child);
|
||
|
if (child.$children && child.$children.length) {
|
||
|
traverseChildren(child.$children);
|
||
|
}
|
||
|
});
|
||
|
};
|
||
|
|
||
|
traverseChildren(pageVm.$children);
|
||
|
|
||
|
// 2. 注册主页面
|
||
|
// 新版uniapp中,vue3下将$mp调整为$scope,为非向前兼容场景
|
||
|
// 故此处根据vue版本不同,针对性做相应调整
|
||
|
if (!pageVm.$mp.page) return;
|
||
|
QDTMini.adaptPageApi(pageVm.$mp.page);
|
||
|
},
|
||
|
},
|
||
|
// 使用 Vue 生命周期钩子来调用重写的方法
|
||
|
onLoad() {
|
||
|
// 此处同步需要更新页面生命周期的注册
|
||
|
this.customOnLoad(this);
|
||
|
},
|
||
|
},
|
||
|
};
|
||
|
|
||
|
export default QDTMini;
|