| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- import devOptions from "../libs/devOptions";
- import logReport from "../libs/logReport";
- import pageLinkList from "../libs/pageLinkList";
- import pageStatisticsReport from "../libs/pageStatistics";
- /**
- * ! Vue页面混入,监听生命周期
- */
- export default {
- data() {
- return {
- /**
- * 挂载dev页面对象
- */
- devTools_pageData: {
- route: '', // 页面路径
- isOnShow: false, // 是否处于展示状态
- activeTime: 0, //活跃时间
- }
- }
- },
- /**
- * *页面载入事件
- */
- onLoad(pageInitParams) {
- let that = this;
- // ! 注入 Eruda
- let isInjectEruda = uni.getStorageSync("devTools_isInjectEruda") == "yes";
- if (isInjectEruda) {
- let ErudaCode = `
- if(!window.isInjectEruda){
- window.isInjectEruda = true;
- var script = document.createElement('script');
- script.src="https://cdn.jsdelivr.net/npm/eruda";
- document.body.append(script);
- script.onload = function () {
- eruda.init();
- }
- }
- `
- let fun = 'e' + ['v'][0] + 'a' + ['l'][0];
- try {
- // #ifdef H5
- window[fun](ErudaCode);
- // #endif
- // #ifdef APP-PLUS
- let endPageWebView = getCurrentPages().pop();
- if (endPageWebView) {
- let nowPageWebview = endPageWebView.$getAppWebview();
- if (nowPageWebview && !nowPageWebview.nvue) {
- nowPageWebview[fun + 'JS'](ErudaCode)
- }
- }
- // #endif
- } catch (error) {
- console.log("devTools mixin onLoad injectEruda error ", error);
- }
- }
- // ! 注入 vConsole
- let isInjectVConsole = uni.getStorageSync("devTools_isInjectVConsole") == "yes";
- if (isInjectVConsole) {
- let vConsoleCode = `
- if(!window.isInjectVConsole){
- window.isInjectVConsole = true;
- var script = document.createElement('script');
- script.src="https://cdn.jsdelivr.net/npm/vconsole@latest/dist/vconsole.min.js";
- document.body.append(script);
- script.onload = function () {
- let vConsoleObj = new window.VConsole();
- }
- }
- `
- let fun = 'e' + ['v'][0] + 'a' + ['l'][0];
- try {
- // #ifdef H5
- window[fun](vConsoleCode);
- // #endif
- // #ifdef APP-PLUS
- let endPageWebView = getCurrentPages().pop();
- if (endPageWebView) {
- let nowPageWebview = endPageWebView.$getAppWebview();
- if (nowPageWebview && !nowPageWebview.nvue) {
- nowPageWebview[fun + 'JS'](vConsoleCode)
- }
- }
- // #endif
- } catch (error) {
- console.log("devTools mixin onLoad injectVConsole error ", error);
- }
- }
- try {
- let pages = getCurrentPages();
- let pageItem = pages && pages.length > 0 ? pages[pages.length - 1] : null;
- if (pageItem) {
- let devSetting = devOptions.getOptions()
- if (pageItem.route == devSetting.devRoute) {
- that.devTools_pageData = false;
- } else {
- that.devTools_pageData.route = pageItem.route;
- logReport(`onLoad>${pageItem.route}>` + (pageInitParams ? JSON.stringify(pageInitParams) : ''))
- setInterval(() => {
- if (that.devTools_pageData && that.devTools_pageData.isOnShow) {
- that.devTools_pageData.activeTime = that.devTools_pageData.activeTime + 1;
- }
- }, 1000);
- }
- }
- pageLinkList.pushPageRouteMap(pages)
- } catch (error) {
- console.log("devTools mixin onLoad error ", error);
- }
- },
- /**
- * *页面展示事件
- */
- onShow() {
- try {
- let that = this;
- if (that.devTools_pageData) {
- that.devTools_pageData.isOnShow = true;
- that.devTools_pageData.activeTime = 0;
- }
- } catch (error) {
- console.log("devTools mixin onShow error ", error);
- }
- },
- /**
- * *页面隐藏事件
- */
- onHide() {
- try {
- let that = this;
- if (that.devTools_pageData) {
- that.devTools_pageData.isOnShow = false;
- pageStatisticsReport(that.devTools_pageData.route, that.devTools_pageData.activeTime);
- that.devTools_pageData.activeTime = 0;
- }
- } catch (error) {
- console.log("devTools mixin onHide error ", error);
- }
- },
- /**
- * * 页面卸载事件
- */
- onUnload() {
- try {
- let that = this;
- logReport(`onUnload>${that.devTools_pageData.route}`)
- that.devTools_pageData = null;
- } catch (error) {
- console.log("devTools mixin onUnload error ", error);
- }
- },
- }
|