bugly for react-native,支持统计,android支持应用全量升级
$ npm install rn-bugly --save
$ react-native link rn-bugly
新版RN会自动link,不需要执行link命令
不管是哪个版本的react-native,ios端都需要在ios
文件夹下执行
$ cd ios
$ pod install
AppDelegate.m
#import "RNBugly.h"
-(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
...
//初始化bugly,会自动读取info.plist中的参数
[RNBugly startWithAppId];
return YES;
}
info.plist
文件读取SDK初始化参数,可配置的参数如下(除Appid为必填外,其它可选
):
- Appid
- Key: BuglyAppIDString
- Value: 字符串类型
- 渠道标识
- Key: BuglyAppChannelString
- Value: 字符串类型
- 版本信息
- Key: BuglyAppVersionString
- Value: 字符串类型
- 开启Debug信息显示
- Key: BuglyDebugEnable
- Value: BOOL类型
MainApplication.java
(依旧可以用Bugly.init进行初始化,下面两个方法只是对Bugly.init的简单封装)
import com.reactlibrary.bugly.RNBuglyModule;
@Override
public void onCreate() {
super.onCreate();
...
** 下面的方法根据情况二选一 **
//参数解析:
//参数1:上下文对象
//参数2:注册时申请的APPID
//参数3:是否开启debug模式,true表示打开debug模式,false表示关闭调试模式
//初始化并且自动检查更新
RNBuglyModule.init(getApplicationContext(),"注册时申请的APPID",false);
//仅仅初始化(推荐使用该方法,所有的检查更新触发都在js端,更加灵活)
RNBuglyModule.initWithoutAutoCheckUpgrade(getApplicationContext(),"注册时申请的APPID",false);
}
import RNBugly from 'rn-bugly';
//如果上面采用的initWithoutAutoCheckUpgrade初始化,并且需要进入app的时候也自动检查更新,可以使用下面的方法手动检查更新
//官方原生的init初始化其实有3s的延迟时间,等待初始化完成,所以js端也需要等待3m后才能检查更新
setTimeout(()=>{
RNBugly.checkUpgrade({
isManual: false,
isSilence: false
});
},3000);
//点击按钮触发检查更新(一般在[关于]-[检查更新])
//此时早已初始化了,不需要延时
RNBugly.checkUpgrade({
//该值为true的时候,会有toast提示,如果不需要提示,设置为false
isManual: true,
isSilence: false
});
//获取更新信息
//注意:更新信息获取一次后会储存在本地,即使后台控制停止该版本更新,该方法依旧可以获取到数据
let updateInfo = await RNBugly.getUpgradeInfo();
//上报自定义异常信息
RNBugly.postException({
errorMsg: 'login error',
stack: 'sadasdasd\nzxzxsds',
extraInfo: {
userInfo: 'test',
password: '12345'
}
})
bugly后端异常信息如下:
其他方法及注释请查看: index.d.ts
参考demo,或者下载example.apk体验
请升级到最新版本后再试
目前对于React Native不用区分版本,直接使用最新版即可,只是安装方式略有不同
请确定targetSDKVersion是否为28或者以上,bugly请求由于使用了http,而android 9默认是不支持http请求的,需要调整下
具体请参考:
https://blog.csdn.net/weixin_34114823/article/details/88037177
在最新的1.1.0的版本中,依赖的官方sdk,已经支持https了,具体查看官方日志
等一会会出现安装提示,bugly对的更新方式是直接在通知栏显示下载进度,下载完成覆盖安装,如果状态栏没有提示,那就是没有通知权限(oppo/vivo系统是默认不开启该权限的)