@ bugfender/ 电容器
远程记录、崩溃报告和应用程序中的用户反馈 臭虫师 财务报告和审定财务报表 电容。 。 。 .
此模块是自第4版起Capacitor的插件. 你用得着 @bugfender/capacitor 在iOS,Android,网络和电子平台的Ionic项目中.
安装
npm install @bugfender/capacitor @bugfender/sdk @bugfender/common
npx cap sync
使用量
像这样导入臭虫 :
import { Bugfender } from '@bugfender/capacitor';
说明: 总是导入 @bugfender/capacitor 改为 @bugfender/sdk。 。 。 .
这将使SDK的原生特征成为你无法得到的.
网络记录
网络记录为 选入 并默认禁用。 启用时, HTTP 请求会作为日志在 Bugfender 中显示 bf_network。 。 。 .
Bugfender.setNetworkLoggingEnabled(true);
// Optional:
Bugfender.setNetworkLoggingCaptureBodies(false);
Bugfender.setNetworkLoggingCaptureErrorResponseBodies(true);
Bugfender.setNetworkLoggingURLFilter(
['https://api.example.com/*'],
['*/secrets/*']
);
Bugfender.setNetworkLoggingMaxRequestsPerMinute(60);
// Optional: redact sensitive headers/bodies before they are logged
Bugfender.setNetworkLoggingRequestObfuscationHandler((url, headers, body) => ({
url,
headers: { ...headers, authorization: '[REDACTED]' },
body,
}));
Bugfender.setNetworkLoggingResponseObfuscationHandler((headers, body) => ({
headers,
body: body ? body.replace(/"token":"[^"]*"/g, '"token":"[REDACTED]"') : null,
}));
您也可以启用它的时间与 networkLoggingEnabled, (中文(简体) ), networkLoggingCaptureBodies,以及 networkLoggingCaptureErrorResponseBodies。 。 。 .
平台注释:
- iOS: (英语) URL会话流量被捕获(在使用URL会话时包括电容HTTP). 需要臭虫 iOS SDK 3.0.1+ (单位:千美元)。 。 。 .
- 机器人: OkHttp的交通通过
android-okhttp 适配器. 需要臭虫Android SDK 4.x (中文(简体) ). 注:电容已内置 CapacitorHttp 用途 HttpURLConnection 和Android和现在 没有 已观察到; apps 应使用 OKHttp( 或示例) sendInstrumentedNetworkRequest 帮助)用于网络日志.
- 网络/ 电子 : 用途
@bugfender/sdk (≥ 4.0.0),拦截 fetch 财务报告和审定财务报表 XMLHttpRequest。 。 。 .
API 密码
请检查以下 URL 以获取完整的 API 引用 : https://js.bugfender.com (中文(简体) )。 。 。 .
因数(...)
init(options: SDKOptions) => Promise<void>
强制发送( C)
forceSendOnce() => void
获取DeviceurL ()
getDeviceURL() => Promise<string>
回返情况: Promise<string>
获取会议( )
getSessionURL() => Promise<string>
回返情况: Promise<string>
获取用户Feedback(...)
getUserFeedback(options?: UserFeedbackOptions | undefined) => Promise<UserFeedbackResult>
回返情况: Promise<UserFeedbackResult>
日志(...)
log(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
日志(...)
log(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
警告(...)
warn(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
警告(...)
warn(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
错误(...)
error(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
错误(...)
error(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
跟踪(...)
trace(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
跟踪(...)
trace(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
信息(...)
info(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
信息(...)
info(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
致命(...)
fatal(obj: unknown, ...objs: unknown[]) => void
| 参数 | 类型 |
obj | unknown |
objs | unknown[] |
致命(...)
fatal(msg: string, ...subst: unknown[]) => void
| 参数 | 类型 |
msg | string |
subst | unknown[] |
删除DeviceKey(...)
removeDeviceKey(key: string) => void
发送日志(...)
sendLog(log: LogEntry) => void
发送 Issue (...)
sendIssue(title: string, text: string) => Promise<string>
| 参数 | 类型 |
title | string |
text | string |
回返情况: Promise<string>
发送崩溃(...)
sendCrash(title: string, text: string) => Promise<string>
| 参数 | 类型 |
title | string |
text | string |
回返情况: Promise<string>
发送用户Feed back(...)
sendUserFeedback(title: string, text: string) => Promise<string>
| 参数 | 类型 |
title | string |
text | string |
回返情况: Promise<string>
设置DeviceKey(...)
setDeviceKey(key: string, value: DeviceKeyValue) => void
已生效(...)
setForceEnabled(state: boolean) => void
设置SDKType(...)
setSDKType(sdkType: string, version: number) => void
| 参数 | 类型 |
sdkType | string |
version | number |
设置网络日志Enabled(...)
setNetworkLoggingEnabled(enabled: boolean) => void
启用或禁用网络记录( 默认: 假) .
设置网络记录
setNetworkLoggingCaptureBodies(capture: boolean) => void
全模式:抓取请求/应答机构(默认:假).
设置网络记录
setNetworkLoggingCaptureErrorResponseBodies(capture: boolean) => void
错误-只有正文模式:只为HTTP状态QQ 400(默认:假)捕获响应正文.
设置网络日志请求ObfuscationHandler(...)
setNetworkLoggingRequestObfuscationHandler(handler: ((url: string, headers: Record<string, string>, body: string | null) => { url: string; headers: Record<string, string>; body: string | null; }) | null) => void
请求混淆—— (url, headers, body) { url, headers, body}.
| 参数 | 类型 |
handler | ((url: string, headers: Record<string, string>, body: string | null) => { url: string; headers: Record<string, string>; body: string | null; }) | null |
设置NetworkLogging ResponseObfuscationHandler(...)
setNetworkLoggingResponseObfuscationHandler(handler: ((headers: Record<string, string>, body: string | null) => { headers: Record<string, string>; body: string | null; }) | null) => void
反应歧义——(头,身) {{头,身}.
| 参数 | 类型 |
handler | ((headers: Record<string, string>, body: string | null) => { headers: Record<string, string>; body: string | null; }) | null |
设置网络LoggingURLFilter(...)
setNetworkLoggingURLFilter(allowlist: string[] | null, denylist: string[] | null) => void
URL过滤:允许列表/拒绝列表. null = 无过滤器.
| 参数 | 类型 |
allowlist | string[] | null |
denylist | string[] | null |
设置NetworkLoggingMax 请求 PerMinte (.)
setNetworkLoggingMaxRequestsPerMinute(count: number | null) => void
利率限制。 Null=无限制.
接口
SDK 选项
| Prop | 类型 | 说明 |
appKey | string | 登录的应用密钥 |
apiURL | string | 基准 URL 到 Bugfender API |
build | string | 应用程序构建标识符 |
baseURL | string | 基准 URL 到 Bugfender 网络仪表板 |
debug | boolean | 将 SDK 设置为调试模式 |
deviceName | string | 设备名称, 这将显示在仪表盘设备列表中 。 默认为浏览器 + OS . |
overrideConsoleMethods | boolean | 覆盖默认 window.console 因此,它也登录到 Bugfender。 默认为 true。 。 。 . |
printToConsole | boolean | 打印也带有 window.console 当调用 Bugfender 记录方法时。 默认为 true。 。 。 . |
logBrowserEvents | boolean | 注册最常见浏览器事件的处理器,向 Bugfender 报告. 默认为 true。 。 。 . |
logUIEvents | boolean | 注册一个处理器来处理最常见的 UI 事件, 向 Bugfender 报告 。 默认为 true。 。 。 . |
registerErrorHandler | boolean | 注册未发现错误处理器, 向 Bugfender 报告崩溃 。 默认为 true。 。 。 . |
ignoreException | ExceptionFilter | 配置例外过滤器, 以忽略某些被报告为崩溃的例外 。 - 函数: (info) => info.message.includes('Script error') - 一系列图案: ['Script error', /^ResizeObserver/i] - 两者兼有的物体: { filter: (info) => ..., patterns: [...] } |
version | string | App 版本标识符 |
networkLoggingEnabled | boolean | 启用网络请求/ 响应抓取 。 默认为 false。 。 。 . 网络/联合系统: 使用前需要输入. |
networkLoggingCaptureBodies | boolean | 当启用网络记录时,捕获请求/响应机构(完整模式). 默认为 false。 。 。 . |
networkLoggingCaptureErrorResponseBodies | boolean | 仅抓取HTTP状态QQ 400的出错反应机构(不抓取完整身体). 默认为 false。 。 。 . |
maximumLocalStorageSize | number | 设定最大大小以字节存储本地日志文件 。 接受的范围为1MB至50MB. 默认为5MB. 仅使用 iOS & Android。 。 。 . |
enableLogcatLogging | boolean | 通过 Logcat 记录所有日志 。 默认为 false。 。 。 . 只有机器人。 。 。 . |
除外信息
用于确定是否应忽略的例外的信息
| Prop | 类型 | 说明 |
message | string | 错误消息 |
error | Error | 错误对象( 如果可用) |
stack | string | 堆栈追踪, 如果有的话 |
filename | string | 错误发生地的文件名/ URL |
line | number | 错误发生地的行号 |
handler | string | 发生错误的处理器类型( 例如 )错误',"无所取回" |
错误
| Prop | 类型 |
name | string |
message | string |
stack | string |
正则Exp
| Prop | 类型 | 说明 |
source | string | 返回正则表达式模式的文本副本。 唯相读取. regExp 参数是一个正则表达式对象. 可以是可变名或字形. |
global | boolean | 返回一个布尔值,表示带有正则表达式的全球旗帜(g)的状态。 默认是虚假的。 唯相读取. |
ignoreCase | boolean | 返回一个布尔值,表示带有正则表达式的被忽略的Case旗(一)的状态。 默认是虚假的。 唯相读取. |
multiline | boolean | 返回一个布尔值,表示使用正则表达式的多行旗 (m) 状态。 默认是虚假的。 唯相读取. |
lastIndex | number | |
| 方法 | 签署 | 说明 |
| 执行 | (字符串:字符串) Reg ExpExec 阵列 无效 | 使用正则表达式模式执行对字符串的搜索,并返回包含搜索结果的数组. |
| 测试 | (字符串:字符串) | 返回一个布尔值,表示搜索字符串中是否存在一个图案. |
| 编译 | (这个) | |
Reg ExpExec 阵列
| Prop | 类型 |
index | number |
input | string |
用户Fedback Result 成功
| Prop | 类型 | 说明 |
isSent | true | 用户已发送反馈. |
feedbackURL | string | 反馈的臭虫 URL . |
用户Feedback 结果取消
| Prop | 类型 | 说明 |
isSent | false | 用户已关闭模式而不发送 . |
用户Feedback 选项
选项对象 Bugfender.getUserFeedback 带有自定义模式字符串.
| Prop | 类型 | 说明 |
title | string | 默认 : Feedback。 。 。 . |
hint | string | 默认 : Please insert your feedback here and click send。 。 。 . |
subjectPlaceholder | string | 默认 : Subject…。 。 。 . |
feedbackPlaceholder | string | 默认 : Your feedback…。 。 。 . |
submitLabel | string | 默认 : Send。 。 。 . |
closeLabel | string | 默认 : Close。 。 。 . 仅iOS。 。 。 . |
日志条目
日志条目对象接口
| Prop | 类型 | 说明 |
line | number | 触发日志的行号 |
level | LogLevel | 基于 日志级别 常数 |
tag | string | 日志的标签 |
method | string | 触发日志的方法名称 |
file | string | 日志所触发的文件名 |
text | string | unknown[] | 文字可以是: - string 内容 unknown[] 符合 console.* 签名 |
url | string | 日志的来源 URL. Android & iOS 上忽略了这个属性 |
类型异名
例外过滤器
忽略例外的配置 .
可能会是:
- 接收例外信息并返回布尔函数
- 一系列图案(字符串或 正则Exp与错误消息匹配
- 两者的结合(职能和模式)
ExceptionFilterFunction | ExceptionPattern[] | { /** Function to determine if exception should be ignored / filter?: ExceptionFilterFunction; /* Patterns to match against error message */ patterns?: ExceptionPattern[]; }
除外过滤功能
确定是否应当忽略例外的函数 .
返回时 true 无视例外, false 以报之.
(info: ExceptionInfo): boolean
例外软件
可以用来匹配例外消息的图案.
可以是字符串(精确或子字符串匹配)或 正则Exp。 。 。 .
string | RegExp
用户Feedback 结果
UserFeedbackResultSuccess | UserFeedbackResultCancel
设备KeyValue
string | number | boolean
记录
构造 T 类型 K 的一组属性类型
{
[P in K]: T;
}
数字
日志级别
| 成员 | 数值 |
Debug | 0 |
Warning | 1 |
Error | 2 |
Trace | 3 |
Info | 4 |
Fatal | 5 |