UNPKG

@sdc-monitor/demo

Version:

<div align="center"> <a href="#" target="_blank"> <img src="https://i.loli.net/2021/07/28/EvPwd4NjVH3tBfO.jpg" alt="mito-logo" height="90"> </a> <p>A Lightweight SDK For Monitor Web</p>

66 lines (59 loc) 2.21 kB
import Store from '../core/store' import { WxPerformanceDataType, WxPerformanceItemType } from '../constant' import HandleEvents from './handleEvents' import { replaceApp, replaceComponent, replaceNetwork, replacePage } from './replace' import { WxPerformanceItem } from '../types/index' // 内存警告 export function initMemoryWarning(store: Store, need: boolean) { if (!need) return wx.onMemoryWarning((res: WechatMiniprogram.OnMemoryWarningCallbackResult) => { store.push(WxPerformanceDataType.MEMORY_WARNING, res as WxPerformanceItem) }) } // 网络状态 export function noNetworkType<T extends WechatMiniprogram.GetNetworkTypeOption = WechatMiniprogram.GetNetworkTypeOption>( option?: T ): WechatMiniprogram.PromisifySuccessResult<T, WechatMiniprogram.GetNetworkTypeOption> { return Promise.resolve({ networkType: 'unknown', signalStrength: 0 }) as unknown as WechatMiniprogram.PromisifySuccessResult<T, WechatMiniprogram.GetNetworkTypeOption> } export function initNetworkInfo(store: Store, need: boolean): void { store.getNetworkType = need ? wx.getNetworkType : noNetworkType } // 电量 function noBatteryInfo(): WechatMiniprogram.GetBatteryInfoSyncResult { return { level: '0', isCharging: false } } export function initBatteryInfo(store: Store, need: boolean): void { store.getBatteryInfo = need ? wx.getBatteryInfoSync : noBatteryInfo } // 微信性能 export function initWxPerformance(store: Store) { const performance = wx.getPerformance() const observer = performance.createObserver((entryList) => { store.push(WxPerformanceDataType.WX_PERFORMANCE, entryList.getEntries()) }) observer.observe({ entryTypes: ['navigation', 'render', 'script'] }) } // appHide 发送 export function initWxHideReport(store: Store, immediately: boolean, onAppHideReport: boolean) { if (immediately || !onAppHideReport) return wx.onAppHide(() => { store.reportLeftData() }) } // 网络请求性能和点击时间 export function initWxNetwork(store: Store) { for (const k in HandleEvents) { store.on(k as WxPerformanceItemType, HandleEvents[k]) } replaceApp(store) replacePage(store) replaceComponent(store) replaceNetwork(store) }