KKMonitor

错误报告

让用户通过屏幕截图从应用内提交 Bug Report。

KMonitor 允许用户从您的应用内部提交 Bug Report,这样您就可以直接从客户那里听到问题。

每个 Bug Report 最多包含五张屏幕截图,以及用户输入的最多 4,000 个字符描述。截图会使用与 KMonitor 其他功能相同的屏幕截图遮罩级别,因此敏感内容会被排除在外。

启动错误报告屏幕

每个 SDK 都附带原生 Bug Report UI。触发时会自动捕获当前屏幕,用户可以在发送之前继续补充内容。通过一次调用即可启动它:

import sh.measure.android.Measure

Measure.launchBugReportActivity(takeScreenshot = true)
import Measure

Measure.launchBugReport(takeScreenshot: true)

在 Android 和 iOS,您可以自定义屏幕主题,让它匹配您的应用。

深色模式灯光模式
Android 上深色模式下的错误报告屏幕Android 上浅色模式下的错误报告屏幕
深色模式灯光模式
iOS 上深色模式下的错误报告屏幕iOS 上浅色模式下的错误报告屏幕

摇一摇报告

用户还可以在应用中的任意位置摇动设备来打开 Bug Report。注册一个 shake handler 即可启用:

import sh.measure.android.Measure
import sh.measure.android.bugreport.MsrShakeListener

Measure.setShakeListener(object : MsrShakeListener {
    override fun onShake() {
        Measure.launchBugReportActivity()
    }
})
import Measure

Measure.onShake {
    Measure.launchBugReport()
}

传递空 handler 可以再次关闭 shake report。

Session Timeline

每个 Bug Report 都附带一个 Session Timeline。它会按顺序列出用户提交报告前发生的事情:打开的屏幕、点击、网络请求、错误和日志。使用它可以准确追溯用户在提交报告前做了什么。

默认情况下,时间线覆盖报告前 5 分钟。可以在 Dashboard 的 Adaptive Capture 中调整回溯时长。

自定义属性

可以给报告附加自定义属性,携带有助于分类的上下文,例如用户套餐、订单 ID 或所在屏幕。之后可以在 Dashboard 中按这些属性过滤和分组。无论您打开 Bug Report UI,还是从自己的 UI 调用 trackBugReport,属性都会被附加到报告上。

import sh.measure.android.Measure
import sh.measure.android.attributes.AttributesBuilder

val attributes = AttributesBuilder().put("screen", "Cart").build()

Measure.launchBugReportActivity(takeScreenshot = true, attributes = attributes)
Measure.trackBugReport(description = "...", attributes = attributes)
import Measure

let attributes: [String: AttributeValue] = ["screen": .string("Cart")]

Measure.launchBugReport(takeScreenshot: true, attributes: attributes)
Measure.trackBugReport(description: "...", attributes: attributes)

查看属性限制,了解允许的键和值。

构建您自己的用户界面

如果您已经有自己的 Bug Report UI,或者想构建一个更贴合应用的 UI,请使用 trackBugReport 提交报告。描述最多可包含 4,000 个字符,最多可包含五个附件。

import sh.measure.android.Measure

Measure.trackBugReport(description = "Cart items disappear after reopening the app")
import Measure

Measure.trackBugReport(description: "Cart items disappear after reopening the app")

配置

Bug Report 可通过远程配置 Adaptive Capture 调整,这样无需发布新版本也能更改采集内容。设置 Session Timeline duration 可以控制报告前回溯多久,默认值为 5 分钟。查看 Bug Report 设置项。