rn-bugly
    TypeScript icon, indicating that this package has built-in type declarations

    1.1.0 • Public • Published

    rn-bugly

    npm version npm version

    bugly for react-native,支持统计,android支持应用全量升级

    安装

    $ npm install rn-bugly --save

    • react-native <0.60

    $ react-native link rn-bugly

    • react-native >=0.60

    新版RN会自动link,不需要执行link命令


    不管是哪个版本的react-native,ios端都需要在ios文件夹下执行

    $ cd ios
    $ pod install

    配置

    iOS

    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类型
    

    Android

    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体验

    注意事项&&疑问

    1.无法使用?

    请升级到最新版本后再试

    目前对于React Native不用区分版本,直接使用最新版即可,只是安装方式略有不同

    2.集成后全量更新无效果

    请确定targetSDKVersion是否为28或者以上,bugly请求由于使用了http,而android 9默认是不支持http请求的,需要调整下

    具体请参考:

    https://blog.csdn.net/weixin_34114823/article/details/88037177

    在最新的1.1.0的版本中,依赖的官方sdk,已经支持https了,具体查看官方日志

    3.为什么我点击更新按钮后,对话框关闭,啥反应都没有?

    等一会会出现安装提示,bugly对的更新方式是直接在通知栏显示下载进度,下载完成覆盖安装,如果状态栏没有提示,那就是没有通知权限(oppo/vivo系统是默认不开启该权限的)

    截图

    Install

    npm i rn-bugly

    DownloadsWeekly Downloads

    19

    Version

    1.1.0

    License

    MIT

    Unpacked Size

    120 kB

    Total Files

    27

    Last publish

    Collaborators

    • yz1311