npm i --save nativeScript-bugsnag
- 版本:1.0.15
- GitHub:https://github.com/Akylas/nativescript-bugsnag
- NPM:https://npmjs.net.cn/package/nativescript-bugsnag
- 下载
- 昨天:0
- 上周:1
- 上个月:26
安装
tns plugin add nativeScript-bugsnag
确保在添加插件后运行新的构建,以避免任何问题。
使用方法
import { Client } from 'nativescript-bugsnag';
const bugsnag = new Client();
bugsnag
.init('YOUR_API_KEY')
.then(res => {
bugsnag.enableConsoleBreadcrumbs();
bugsnag.handleUncaughtErrors();
console.log('bugsnag did init', !!res);
})
.catch(err => {
console.log('bugsnag init failed', err);
});
报告 NativeScript 错误
handleUncaughtErrors
方法确保所有未捕获的 NativeScript 错误在生产环境中被 Bugsnag 捕获,使用一个 自定义错误处理器。
报告已处理错误
如果您想将一个已处理错误发送到 Bugsnag,可以将任何 Error 对象传递给 Bugsnag 的 notify 方法
try {
// potentially crashy code
} catch (error) {
bugsnag.notify(error);
}
报告 promise 拒绝
要报告一个 promise 拒绝,请在 catch 块中使用 notify()
new Promise(function(resolve, reject) {
/* potentially failing code */
})
.then(function () { /* if the promise is resolved */ })
.catch(function (error) {
bugsnag.notify(error); /* if the promise is rejected */
});
发送诊断数据
自动捕获的诊断
Bugsnag 会自动捕获并附加以下诊断数据
- 完整的堆栈跟踪
- 电池状态
- 设备型号和操作系统版本
- 所有线程的线程状态
- 发布阶段(生产、调试等)
- 应用在前台和/或后台运行的时间
- 设备和供应商特定的标识符
附加自定义诊断
通常,将特定于应用的诊断数据附加到异常报告中很有帮助。这可以通过向 notify 添加一个报告回调来实现。该回调在报告发送到 Bugsnag 之前被调用
bugsnag.notify(error, function(report) {
report.metadata = { "account": {
"company": "Acme Co",
"id": 123
}
}
});
识别用户
为了关联错误与客户报告,或查看经历过每个错误的用户列表,捕获并显示用户信息很有帮助。在 Bugsnag 客户端设置的任何信息都会随每个错误报告发送
bugsnag.setUser('1234', 'Jessica Jones', '[email protected]');
记录碎面包屑
为了了解在每次崩溃之前应用程序中发生的事情,留下简短的日志语句(我们称之为碎面包屑)可能很有帮助。最后几个碎面包屑会附加到崩溃中,以帮助诊断导致错误的事件。
自动捕获的碎面包屑
默认情况下,Bugsnag 会捕获常见事件,包括
- 低内存警告
- 设备旋转(如果适用)
- 菜单显示
- 屏幕截图捕获(不是屏幕截图本身)
- 撤销和重做
- 表视图选择
- 窗口可见性更改
- 非致命错误
- 日志消息(默认关闭,请参阅配置选项)
附加自定义碎面包屑
要附加额外的碎面包屑,请使用 leaveBreadcrumb 函数
bugsnag.leaveBreadcrumb('load main view', {type: 'navigation'});
会话跟踪
Bugsnag 跟踪应用程序内发生的“会话”数量。这允许您比较发布之间的稳定性得分,并帮助您了解发布质量。
会话默认会捕获和报告。此行为可以通过使用 autoCaptureSessions
配置选项来禁用。
使用此选项,Bugsnag 每次都会报告一个会话
- 应用程序启动
- 应用程序在 60 秒内首次进入前台
如果您想控制被视为会话的内容,可以关闭自动会话跟踪的 autoCaptureSessions
选项,并使用 startSession()
、stopSession()
和 resumeSession()
管理会话生命周期。