蒲公英文档中心

蒲公英 -凯发k8地址

注册应用获取 app key

app key:唯一标识一个应用的 key,在蒲公英上的每一个 app 都有一个唯一的 app key,开发者可以在应用管理页面凯发k8地址首页查看。

下载 sdk

点击这里下载 android sdk

导入sdk

eclipse用户

将 jar 包复制到工程的 libs 目录下面。

android studio用户

添加代码到project下的build.gradle文件中:

allprojects {
    repositories {
        jcenter()
        maven { url "https://raw.githubusercontent.com/pgyer/mvn_repo_pgyer/master" }
    }
}

然后在module下的build.gradle文件中添加依赖即可:

dependencies {
    compile 'com.pgyersdk:sdk:3.0.10'
}

android studio用户除了可以使用以上方法集成sdk外,也可以使用和eclipse用户相同的方法来集成sdk。

jar包引用sdk方式,配置 androidmanifest

需要配置相关的权限,provider,pgyerprovider,pgyer_appid


 
 
  
 
 
 

 

        
    
    
    

aar 引用sdk方式,配置 androidmanifest

仅需要配置 pgyer_appid,即是app key


    
        
    
        
    

注意:appid 即 app key

jar 包方式集成需要手动配置以下文件

android8.0 安装 apk 需要添加权限:

 

android9.0 需要配置允许 sdk http请求配置:
network_security_config.xml 文件



    
        www.pgyer.com
        app-global.pgyer.com
    

上报 crash 异常

一、注册crash接口(必选)

  1. 启动 pgyer 检测 crash 功能;
   pgycrashmanager.register(getapplicationcontext());  // 弃用
   pgycrashmanager.register(); //推荐使用
  1. 添加自定义的 crash 功能(新功能)
   //这个方法慎用 
   pgyercrashobservable.get().attach(new pgyerobserver() {
    @override
    public void receviedcrash(thread thread, throwable exception) {
    // 禁止做耗时操作
    // 添加自定义操作
      }
     }
   });

注意:自定义的 crash 操作中禁止做耗时操作,循环操作。

  1. 设置是否忽略系统默认的crash流程
   pgycrashmanager.setisignoredefaulthander(true); //默认设置为false;
   //设置为 true ,则忽略系统默认crash 操作,sdk 会重启启动 app 的当前页面

二、上报异常

try  {
    // code
} catch (exception e) {
/** 旧版本 **/
    pgycrashmanager.reportcaughtexception(mainactivity.this, e); // 弃用,不推荐使用
/** 新版本 **/
    pgycrashmanager.reportcaughtexception(e);       
}

摇一摇用户反馈(旧版本方法不兼容)

  1. 默认摇一摇启动
 // 默认采用摇一摇弹出 dialog 方式
 new pgyerfeedbackmanager.pgyerfeedbackbuilder().builder().register();
 // 采用摇一摇弹出 activity 方式
 new pgyerfeedbackmanager.pgyerfeedbackbuilder()    
    .setdisplaytype(pgyerfeedbackmanager.type.dialog_type)  
    .builder()
    .register();
// 可自定义的选项
 new pgyerfeedbackmanager.pgyerfeedbackbuilder()
    .setshakeinvoke(false)  //设置是否摇一摇的方式激活反馈,默认为 true
                         // fasle 则不触发摇一摇,最后需要调用 invoke 方法
    .setcolordialogtitle("#ff0000")    //设置dialog 标题的字体颜色,默认为颜色为#ffffff
    .setcolortitlebg("#ff0000")        //设置dialog 标题栏的背景色,默认为颜色为#2e2d2d
    // 默认参数为pgyerfeedbackmanager.type.dialog_type, dialog ui 显示
    // 可选参数pgyerfeedbackmanager.type.activity_type  activity ui 显示
    .setdisplaytype(pgyerfeedbackmanager.type.dialog_type)  
    .setmoreparam("key1","value1") //自定义的反馈数据
    .setmoreparam("key2","value2") //自定义的反馈数据
    .builder()
    .register();

2.自定义触发反馈

  1. dailog ui 显示反馈
new pgyerfeedbackmanager.pgyerfeedbackbuilder()
    .setshakeinvoke(false)       //fasle 则不触发摇一摇,最后需要调用 invoke 方法
                                // true 设置需要调用 register 方法使摇一摇生效
    .setdisplaytype(pgyerfeedbackmanager.type.dialog_type)   //设置以dialog 的方式打开
    .setcolordialogtitle("#ff0000")    //设置dialog 标题的字体颜色,默认为颜色为#ffffff
    .setcolortitlebg("#ff0000")        //设置dialog 标题栏的背景色,默认为颜色为#2e2d2d
    .setbarbackgroundcolor("#ff0000")      // 设置顶部按钮和底部背景色,默认颜色为 #2e2d2d
    .setbarbuttonpressedcolor("#ff0000")        //设置顶部按钮和底部按钮按下时的反馈色 默认颜色为 #383737
    .setcolorpickerbackgroundcolor("#ff0000")   //设置颜色选择器的背景色,默认颜色为 #272828
    .setmoreparam("key1","value1") //自定义的反馈数据
    .setmoreparam("key2","value2") //自定义的反馈数据
    .builder()
    .invoke();                  //激活直接显示的方式
  1. activity ui 显示反馈
new pgyerfeedbackmanager.pgyerfeedbackbuilder()
    .setshakeinvoke(false)       //fasle 则不触发摇一摇,最后需要调用 invoke 方法
                                // true 设置需要调用 register 方法使摇一摇生效
    .setbarbackgroundcolor("#ff0000")      // 设置顶部按钮和底部背景色,默认颜色为 #2e2d2d
    .setbarbuttonpressedcolor("#ff0000")        //设置顶部按钮和底部按钮按下时的反馈色 默认颜色为 #383737
    .setcolorpickerbackgroundcolor("#ff0000")   //设置颜色选择器的背景色,默认颜色为 #272828
    .setbarimmersive(true)              //设置activity 是否以沉浸式的方式打开,默认为 false
    .setdisplaytype(pgyerfeedbackmanager.type.activity_type)   //设置以 activity 的方式打开
    .setmoreparam("key1","value1")      //自定义的反馈数据
    .setmoreparam("key2","value2")      //自定义的反馈数据
    .builder()
    .invoke();                  //激活直接显示的方式

将在用户反馈的详情界面看到自定义的数据,如下图:

检查更新

  1. 默认对话框的版本更新检查

旧版本需修改如下

 /** 旧版本修改 **/
 pgyupdatemanager.register(); // 弃用方法,不推介

新版本

/** 新版本 **/
/** 默认方式 **/
new pgyupdatemanager.builder()
    .register();
/** 可选配置集成方式 **/
new pgyupdatemanager.builder()
    .setforced(true)                //设置是否强制提示更新
                // v3.0.4  以上同时可以在凯发k8地址官网设置强制更新最高低版本;网站设置和代码设置一种情况成立则提示强制更新
    .setusercanretry(false)         //失败后是否提示重新下载
    .setdeletehistroyapk(false)     // 检查更新前是否删除本地历史 apk, 默认为true
    .register();
  1. 带回调的版本更新检查

旧版本需修改如下

/** 旧版本修改 **/
pgyupdatemanager.register(new updatemanagerlistener() {   // 弃用方法,不推介
    @override
    public void onnoupdateavailable() {
        //检测没有跟新的回调
    }
    @override
    public void onupdateavailable(appbean appbean) {
        //检测有更新的回调
        log.d("pgyer", "there is new version can update"
                       "new versioncode is "   appbean.getversioncode());
        //调用以下方法,downloadfilelistener 才有效;
        //如果完全使用自己的下载方法,不需要设置downloadfilelistener
    pgyupdatemanager.downloadapk(appbean.getdownload);
    }
    @override
    public void checkupdatefailed(exception e) {   //再回调失败的时候,增加了新的接口
              //更新拒绝(应用被下架,过期,不在安装有效期,下载次数用尽)以及无网络情况会调用此接口
        }
    });

​新版本 (新方法:添加了使用蒲公英下载的回调接口)


/** 新版本 **/ new pgyupdatemanager.builder() .setforced(true) //设置是否强制提示更新,非自定义回调更新接口此方法有用 .setusercanretry(false) //失败后是否提示重新下载,非自定义下载 apk 回调此方法有用 .setdeletehistroyapk(false) // 检查更新前是否删除本地历史 apk, 默认为true .setupdatemanagerlistener(new updatemanagerlistener() { @override public void onnoupdateavailable() { //没有更新是回调此方法 log.d("pgyer", "there is no new version"); } @override public void onupdateavailable(appbean appbean) { //有更新回调此方法 log.d("pgyer", "there is new version can update" "new versioncode is " appbean.getversioncode()); //调用以下方法,downloadfilelistener 才有效; //如果完全使用自己的下载方法,不需要设置downloadfilelistener pgyupdatemanager.downloadapk(appbean.getdownload); } @override public void checkupdatefailed(exception e) { //更新检测失败回调 //更新拒绝(应用被下架,过期,不在安装有效期,下载次数用尽)以及无网络情况会调用此接口 log.e("pgyer", "check update failed ", e); } }) //注意 : //下载方法调用 pgyupdatemanager.downloadapk(appbean.getdownload); 此回调才有效 //此方法是方便用户自己实现下载进度和状态的 ui 提供的回调 //想要使用蒲公英的默认下载进度的ui则不设置此方法 .setdownloadfilelistener(new downloadfilelistener() { @override public void downloadfailed() { //下载失败 log.e("pgyer", "download apk failed"); } @override public void downloadsuccessful(file file) { log.e("pgyer", "download apk success"); // 使用蒲公英提供的安装方法提示用户 安装apk pgyupdatemanager.installapk(file); } @override public void onprogressupdate(integer... integers) { log.e("pgyer", "update download apk progress" integers); }}) .register();

混淆

一般不需要添加,如果需要,则添加以下代码

-libraryjars libs/pgyer_sdk_x.x.jar
-dontwarn com.pgyersdk.**
-keep class com.pgyersdk.** { *; }
-keep class com.pgyersdk.**$* { *; }

调试

蒲公英 sdk 会在调试的过程中打印 log,可以通过 pgyersdk 标签筛选 log 信息

常见问题

点击查看