蒲公英文档中心
app key:唯一标识一个应用的 key,在蒲公英上的每一个 app 都有一个唯一的 app key,开发者可以在应用管理页面凯发k8地址首页查看。
将 jar 包复制到工程的 libs 目录下面。
添加代码到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。
需要配置相关的权限,provider,pgyerprovider,pgyer_appid
仅需要配置 pgyer_appid,即是app key
注意:appid 即 app key
android8.0 安装 apk 需要添加权限:
android9.0 需要配置允许 sdk http请求配置:
network_security_config.xml 文件
www.pgyer.com
app-global.pgyer.com
pgycrashmanager.register(getapplicationcontext()); // 弃用
pgycrashmanager.register(); //推荐使用
//这个方法慎用
pgyercrashobservable.get().attach(new pgyerobserver() {
@override
public void receviedcrash(thread thread, throwable exception) {
// 禁止做耗时操作
// 添加自定义操作
}
}
});
注意
:自定义的 crash 操作中禁止做耗时操作,循环操作。
pgycrashmanager.setisignoredefaulthander(true); //默认设置为false;
//设置为 true ,则忽略系统默认crash 操作,sdk 会重启启动 app 的当前页面
try {
// code
} catch (exception e) {
/** 旧版本 **/
pgycrashmanager.reportcaughtexception(mainactivity.this, e); // 弃用,不推荐使用
/** 新版本 **/
pgycrashmanager.reportcaughtexception(e);
}
// 默认采用摇一摇弹出 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.自定义触发反馈
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(); //激活直接显示的方式
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(); //激活直接显示的方式
将在用户反馈的详情界面看到自定义的数据,如下图:
旧版本需修改如下
/** 旧版本修改 **/
pgyupdatemanager.register(); // 弃用方法,不推介
新版本
/** 新版本 **/
/** 默认方式 **/
new pgyupdatemanager.builder()
.register();
/** 可选配置集成方式 **/
new pgyupdatemanager.builder()
.setforced(true) //设置是否强制提示更新
// v3.0.4 以上同时可以在凯发k8地址官网设置强制更新最高低版本;网站设置和代码设置一种情况成立则提示强制更新
.setusercanretry(false) //失败后是否提示重新下载
.setdeletehistroyapk(false) // 检查更新前是否删除本地历史 apk, 默认为true
.register();
旧版本需修改如下
/** 旧版本修改 **/
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 信息