基础方法包含获取微信小程序监控SDK并初始化、上报和设置安全域名这三个步骤:
获取微信小程序监控SDK并初始化:
在微信小程序/utils目录下新建wxLogger.js文件,并将JS文件的内容复制并粘贴至新建的wxLogger.js文件中。
在/utils目录下新建monitor.js文件,并将以下内容添加至新建的monitor.js文件中以完成初始化。
说明 您可以自定义JS文件的名称和存放位置。
如果项目使用node module (require) 方式集成,则添加以下内容:
const WXLogger = require('./wxLogger.js')
const Monitor = WXLogger.init({
pid: 'xxx',
region: 'cn',// 指定应用部署的地域:中国设为cn,海外地区靠近新加坡的设为sg。
})
export default Monitor
如果项目使用ES module (import) 方式集成,则添加以下内容:
import WXLogger from './wxLogger.js'
const Monitor = WXLogger.init({
pid: 'xxx',
region: 'cn',// 指定应用部署的地域:中国设为cn,海外地区靠近新加坡的设为sg。
})
export default Monitor
说明 关于参数的详细配置,请参见通用SDK配置项。
使用以下方法静默采集PV、Error、API、性能及Health数据:
在app.js中,使用Monitor.hookApp(options)方法静默捕获Error类日志。其中的options即为App层相应的Object配置。
import Monitor from '/util/monitor'
App(Monitor.hookApp({
onError(err) {
console.log('进入onError:', err)
},
onLaunch() {
console.log('进入onLaunch')
},
onShow(options) {
},
onHide() {
}
}))
在page的JS文件中通过Monitor.hookPage(options)方法静默上报API请求、PV、Health数据。
import Monitor from '/util/monitor'
// 使用hookPage后,生命周期的API会自动打点。
Page(Monitor.hookPage({
data: {},
onLoad(query) {
},
onReady() {
// 页面加载完成。
},
onShow() {
},
onLoad(query) {
},
onHide() {
},
onUnload() {
}
}))
设置安全域名:
如果region设为cn,则将https://arms-retcode.aliyuncs.com添加到Request合法域名。
如果region设为sg,则将https://arms-retcode-sg.aliyuncs.com添加到Request合法域名。
API方法:静默打点基础API
方法 参数 备注 示例使用场景
hookApp {} 请传入原有的App参数。 在App的生命周期中自动打点。
hookPage {} 请传入原有的Page参数。 在Page的生命周期中自动打点。
说明 小程序监控项目如需使用hookApp、hookPage嵌入生命周期打点,必须符合标准小程序关于App和Page的规范,即App层有onError,Page层有onShow、onHide、onUnload。使用方法示例,请参见基础使用方法。
API方法:其他设置API
方法 参数 备注
setCommonInfo {[key: string]: string} 设置日志基础字段,可用于灰度发布等场景。
setConfig {[key: string]: string} 设置config字段,具体 *** 作,请参见SDK参考。
说明 对于setConfig方法,小程序场景不支持配置uid,您可以使用setUsername代替uid标识用户。
pageShow {} Page Show打点,发送PV数据。
pageHide {} Page Hide打点,发送Health数据。
error String/Object 错误日志打点。
api 请参见API参考 API类日志上报。
sum/avg String 自定义求和、求均值日志上报。
进阶场景
当基础使用方法无法满足需求时,请参见以下进阶场景:
手动上报API相关信息(不采用静默上报方式):
将disableHook设为true,不静默上报wx.request请求的日志。
手动调用api()方法上报API相关信息。
取消静默上报并改为手动打点:
在App和Page对应的JS文件中不再使用hookApp、hookPage方法。
如需发送当前页面的PV数据,则在Page的onShow方法下调用pageShow()方法。
说明 请勿与hookPage()方法同时使用此方法,否则会造成PV类日志重复上报。
import Monitor from '/util/monitor'
Page({
onShow: function() {
Monitor.pageShow()
}
})
如需发送当前页面的Health类数据,统计当前页面的健康度和页面停留时间,则在Page的onHide和onUnload方法下调用pageHide()方法。
说明 请勿与 hookPage()方法同时使用此方法,否则会造成日志重复上报。
import Monitor from '/util/monitor'
Page({
onHide: function() {
Monitor.pageHide()
},
onUnload: function() {
Monitor.pageHide()
}
...
})
通用SDK配置项
ARMS前端监控提供一系列SDK配置项,让您能够通过设置参数来满足额外需求。以下是适用于本文场景的通用配置项。
参数 类型 描述 是否必选 默认值
pid String 项目唯一ID,由ARMS在创建站点时自动生成。 是 无
uid String 用户ID,用于标识访问用户,可手动配置,用于根据用户ID检索。如果不配置,则由SDK随机自动生成且每半年更新一次。 否 由SDK自动生成
tag String 传入的标记,每条日志都会携带该标记。 否 无
release String 应用版本号。建议您配置,便于查看不同版本的上报信息。 否 undefined
environment String 环境字段,取值为:prod、gray、pre、daily和local,其中:
prod表示线上环境。
gray表示灰度环境。
pre表示预发环境。
daily表示日常环境。
local表示本地环境。
否 prod
sample Integer 日志采样配置,值为1~100的整数。对性能日志和成功API日志按照1/sample的比例采样,关于性能日志和成功API日志的指标说明,请参见统计指标说明。 否 1
behavior Boolean 是否为了便于排查错误而记录报错的用户行为。 否 false
enableLinkTrace Boolean 进行前后端链路追踪,请参见使用前后端链路追踪诊断API错误原因。 否 false
ARMS前端监控还提供了更多SDK配置项,可满足进一步的需求。更多信息,请参见SDK参考。
小程序的生命周期函数是一组函数,在小程序生命周期内按约定的顺序被调用。简单来说,生命周期函数就是在小程序的运行过程中自动执行的某些函数。这些函数在不同时期扮演不同的角色,比如在小程序启动时进行初始化,页面渲染时获取数据,页面切换时暂停和恢复等。小程序的生命周期函数有以下几个:1. `onLaunch`: 小程序初始化加载时的钩子函数,全局只触发一次。可以在此函数中获取小程序的启动参数、从缓存中获取数据等。
2. `onShow`: 小程序启动或从后台进入前台时触发。可以在此函数中获取小程序的路径参数、检查用户是否登录等。
3. `onHide`: 小程序从前台进入后台时触发。可以在此函数中暂停正在播放的音乐、记录页面状态等。
4. `onError`: 小程序发生错误时触发。可以在此函数中将报错信息发送给开发者,以便定位问题。
5. `onPageNotFound`: 小程序页面不存在时触发。可以在此函数中提示用户该页面不存在,或者自动跳转到其他页面。
除了以上五个生命周期函数,小程序中还有一些页面级别的生命周期函数,例如:
1. `onLoad`: 页面加载时触发,可以在此函数中获取页面路径参数、从服务器获取数据等。
2. `onReady`: 页面初次渲染完成时触发。可以在此函数中获取节点信息、动态计算布局等。
3. `onUnload`: 页面卸载时触发,可以在此函数中取消监听器、清除定时器等。
4. `onShareAppMessage`: 用户点击右上角转发按钮或分享到朋友圈时触发。可以在此函数中定义需要分享的内容、动态生成图片等。
总之,生命周期函数是小程序中非常重要的一部分,开发者需要在不同情况下适时地调用这些函数,实现一些必要的 *** 作。
小程序接入激励视频广告,碰到过以下问题:
1、接入视频的页面加载时,开发者工具里报错;微信的bug,不影响真机展示视频,可不予理会
onError catch捕获不到该错误信息(微信的已知bug)
尝试过延迟一定跳转页面,依然报错未解决,该问题不影响页面展示,故忽略
onError catch捕获不到该错误信息(微信的已知bug)
解决方法:
在页面隐藏时onHide和onUnLoad时将创建的createRewardedVideoAd设置为null( 需取消原有的监听事件 ) ,
在页面onSHow的时候再次创建的 videoAd = wx.createRewardedVideoAd({ }),重新监听事件
如果在页面隐藏时不取消监听事件,会多次调用方法监听广告事件 产生多次事件回调
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)