记一次友盟push接入厂商通道遇到的几个小问题点

最近在接入友盟push厂商通道,从华为开始接入,就开始踩坑,闲话不多说,直接说事儿!

华为接入问题:

接友盟的华为厂商可以看友盟官方文档:https://developer.umeng.com/docs/67966/detail/98589

1.获取不到token,却提示:
2020-12-17 10:43:37.778 29115-29115/com.ume.browser I/NAccs.HuaWeiRegister:  connect result:6003

经过询问umeng客服,得到解释:
image.png
解决办法

说我这里面的指纹没设置:SHA256,这个东西可以通过以下命令来获取:
我电脑是mac,所以找到我的apk的签名文件,然后使用keytool命令来查询

keytool -list -v -keystore /Users/gudongdong/Documents/AndroidWorkSpace/SUME_C_V7X/app/Browser2.keystore 

那么查看到
获取SHA256.png

这里的sha256以后,则说明你可以去设置到华为AppGallery Connect里去了。
重新打包运行,那么token获取正常!

2.点击push通知进入到应用后获取body为乱码

自定义一个类PushActivity.java并继承于UmengNotifyClickActivity.java,PushActivity作为推送发送时打开的用于接收数据的界面,不过这个界面最好设置为透明!接收数据如下:但当时body为乱码,我刚开始还以为是加密数据需要通过算法来解密!但文档翻了半天,也没发现解密算法。

 @Override
    public void onMessage(Intent intent) {
        super.onMessage(intent);// 此方法必须调用,否则无法统计打开数
        String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
      // 在此处的body就是为自定义参数传递过来的内容,也就是此处body为乱码,大概内容是
     body : pE4i070ObrI0zQWufTCQV96pchZnXalcndK8KVrDQ9ZmdSqaDwwCtqWse72u8XfN45ALSZa3jZwt
 vxqmJVCb9tmWzYYcaa7kSsS3OrZfPAWJEgR9ajUIWTOKVd0TSBfc2ryng0gA0L4uxM6wDmCcKPVD
 9OswqWs2BzdxWn_FsXxo7cXJF2ac3kM2k3lYozwlbyrJ5Q3UYgWzScvNV0-cquqSG_JgCUwmURep
 Du14SR7X0jT6wS5CYCYghkQbVYQYiVegQ4pqX-kFKxwFN5lYCreO7IOfDA_8Pvm2RtJt6tyQYeZD
 zxcUpFNaHiJP1g4uj2PVpUyIl6X1KaEoIajfSbQSWG_a1VgfEBIDztutA2f8xineatMQqU5lhoJ_
 grqutdNeSTQOMDuUhcZfDcYv0CcttkYndG33qBoRibdWrWst4--ETJKCJBfzL9xvUrqhj9elvXMp
 RGRXN3-XlJ7tuOEGbx-XKeAD21P-LB9D9ydxiIHMJCzN2omeKO7cOZnbFY5OLpp3lBW3sr3Wcb4d
 M3O2kgKq_4h6ogoU4N8WlqPmqGq7mE8DTM1f9Hj8dPXOA8C7XOPvmiJJX0u0wMJKuKCj6EhKr0KM
 -yytzATRg-LAY0ZbqgZmTGXUw79pIQtuis3_n3PBU2U3daDUnfJ8RJm80FC2-k7526ech3rnjm4=

    }
解决办法:

可查看:https://developer.umeng.com/docs/67966/detail/187200?spm=a311a.7996332.0.0.21a93080Mv5vXN
它是说如果你代码使用了预初始化方法,那么就有可能出现乱码。原文如下:

注意事项:延迟初始化方案不是官方推荐,如果业务确有需要,请对主要功能进行完备测试。
注意事项:onAppStart()方法再授权后的页面调用。
如果在设置延迟初始化方案时,厂商通道获取消息为乱码,需要在Application的onCreate方法中,在所有友盟SDK初始化之前,添加如下代码段。
**备注:以下代码段不会触发设备等信息采集

try {
    AccsClientConfig.Builder configBuilder = new AccsClientConfig.Builder();
    AccsClientConfig accsConfig = configBuilder.setAppKey("umeng:" + "你的appkey")
            .setAppSecret("你的secret")
            .setTag(AccsClientConfig.DEFAULT_CONFIGTAG)
            .build();
    ACCSClient.init("context上下文", accsConfig);
    TaobaoRegister.setAccsConfigTag("context上下文", AccsClientConfig.DEFAULT_CONFIGTAG);
UMConfigure .preInit("context上下文", "你的appkey", "你的channel")
} catch (Throwable e){
    e.printStackTrace();
}

至此...再遇到新问题再添加,好久没记录问题了,文章比较糙,希望海涵,能帮助到你当然最好啦。
感谢浏览!!

你可能感兴趣的:(记一次友盟push接入厂商通道遇到的几个小问题点)