感谢您的反馈!
写在前面:如果您在接入中有任何疑问,请参照文档“接入指南-服务模式”加入钉钉群和我们交流。
请前往文档SDK下载&版本更新记录里下载“Android SDK”、“Android Demo工程”
复制下载SDK文件夹下的.aar和.jar到libs目录下,
在build.gradle文件中添加如下配置:
添加本地libs地址,以便可以找到放置在libs中的aar文件:
repositories { flatDir { dirs 'libs' } }
添加本地依赖:
dependencies { compile(name:'alisdk-feedback-2.5.0', ext:'aar') compile(name:'securityguardaar3-5.1.81', ext:'aar') compile files('libs/app-monitor-sdk-2.5.1.1_for_bc_proguard.jar') compile files('libs/utdid4all-1.1.5.3_proguard.jar') //自行依赖support-v4 }
ps: 别忘记添加support-v4的依赖
解压前面下载的SDK, 可以发现两个jar和两个aar, 分别做如下处理:
jar包的处理
securityguard-XXX.aar的迁移
alisdk-feedback-XXX.aar的迁移
android.library=true
, 表示作为库项目使用PS: 如果接入方接入了阿里系的其它sdk从而导致包冲突,, 则去掉冲突的依赖或者jar包即可
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
参考 接入流程中的准备工作四 添加安全图片
务必仔细阅读文档中“使用须知”部分, 否则不正确的操作将可能导致校验不过打开不了反馈界面
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
应用进行混淆打包时,应加入如下混淆配置:
-keep class com.alibaba.sdk.android.feedback.impl.FeedbackServiceImpl {*;} -keep class com.alibaba.sdk.android.feedback.impl.FeedbackAPI {*;} -keep class com.alibaba.sdk.android.feedback.util.IWxCallback {*;} -keep class com.alibaba.sdk.android.feedback.util.IUnreadCountCallback{*;} -keep class com.alibaba.sdk.android.feedback.FeedbackService{*;} -keep public class com.alibaba.mtl.log.model.LogField {public *;} -keep class com.taobao.securityjni.**{*;} -keep class com.taobao.wireless.security.**{*;} -keep class com.ut.secbody.**{*;} -keep class com.taobao.dp.**{*;} -keep class com.alibaba.wireless.security.**{*;} -keep class com.ta.utdid2.device.**{*;}
FeedbackAPI.init(application, appkey);
参数说明:
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
另起一个Activity打开用户反馈H5界面:
FeedbackAPI.openFeedbackActivity();
如果希望使用Fragment方式打开:
FragmentManager fm = getSupportFragmentManager(); final FragmentTransaction transaction = fm.beginTransaction(); final Fragment feedback = FeedbackAPI.getFeedbackFragment(); // must be called FeedbackAPI.setFeedbackFragment(new Callable() { @Override public Object call() throws Exception { transaction.replace(R.id.content, feedback); transaction.commit(); return null; } }/*success callback*/, null/*fail callback*/);
PS:
fragment的使用务必使用上述setFeedbackFragment的回调
在xml中声明fragment那种方式暂时不支持
包装fragment的activity务必调用FeedbackAPI.cleanFeedbackFragment();
此时的Fragment是support-v4包中的Fragment
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
FeedbackAPI.getFeedbackUnreadCount(IUnreadCountCallback callback)
参数callback: onSuccess(int count)回调方法count指示当前未读消息数
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
FeedbackAPI.setAppExtInfo(JSONObject extInfo)
参数extInfo: 反馈消息自定义json对象数据,可以在反馈控制台查看这些自定义数据
解压下载的“Android Demo工程”导入到AS中
注意: demo工程中, FeedbackAPI.init被调用了多次, 这是为了能够达到实时更新配置的效果, 实际使用上建议只在Application中, 调用FeedbackAPI.init方法一次即可
请大家查看自己的debug log(将log level设置成debug或者verbose)
1. 安全图片问题,请搜索ErrorCode
- ErrorCode = 607, 图片文件有问题。一般是获取图片文件时的apk签名和当前程序的apk签名不一致。请使用当前程序的apk重新生成图片。注意在上传的时候后台应用的appkey和程序中使用的appkey请确保一致
- ErrorCode = 608 没有找到图片文件,请确保图片文件在res\drawable目录下;安卓环境下可能是因为资源优化被优化成了0,请检查APK中的图片。 大部分是由于gradle中使用了shrinkResource
- ErrorCode = 611 参数中的key在图片文件中找不到,请确认图片文件中有这个key
- 如果ErrorCode不是以上请加入钉钉群
2. utdid冲突的问题
- 阿里系的sdk大部分都会有utdid这个依赖,由于我们utdid是较新的,建议保留我们的,删除其他的utdid依赖
3. allowBackup的问题
- AndroidManifest中要求allowBackup为false
4. 安全权限提示问题
- 因为样式没办法统一,每个app都可能有自己风格,所以这个需要自己加上去。
5. 测试的时候正常,正式上线后出现提交反馈 提示参数错误
- 在gradel里面 minifyEnabled 改为false 就可以了。