最近在接入友盟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
經(jīng)過詢問umeng客服,得到解釋:
解決辦法
說我這里面的指紋沒設(shè)置:SHA256,這個(gè)東西可以通過以下命令來獲?。?br> 我電腦是mac,所以找到我的apk的簽名文件,然后使用keytool命令來查詢
keytool -list -v -keystore /Users/gudongdong/Documents/AndroidWorkSpace/SUME_C_V7X/app/Browser2.keystore
那么查看到
這里的sha256以后,則說明你可以去設(shè)置到華為AppGallery Connect里去了。
重新打包運(yùn)行,那么token獲取正常!
2.點(diǎn)擊push通知進(jìn)入到應(yīng)用后獲取body為亂碼
自定義一個(gè)類PushActivity.java并繼承于UmengNotifyClickActivity.java,PushActivity作為推送發(fā)送時(shí)打開的用于接收數(shù)據(jù)的界面,不過這個(gè)界面最好設(shè)置為透明!接收數(shù)據(jù)如下:但當(dāng)時(shí)body為亂碼,我剛開始還以為是加密數(shù)據(jù)需要通過算法來解密!但文檔翻了半天,也沒發(fā)現(xiàn)解密算法。
@Override
public void onMessage(Intent intent) {
super.onMessage(intent);// 此方法必須調(diào)用,否則無法統(tǒng)計(jì)打開數(shù)
String body = intent.getStringExtra(AgooConstants.MESSAGE_BODY);
// 在此處的body就是為自定義參數(shù)傳遞過來的內(nèi)容,也就是此處body為亂碼,大概內(nèi)容是
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
它是說如果你代碼使用了預(yù)初始化方法,那么就有可能出現(xiàn)亂碼。原文如下:
注意事項(xiàng):延遲初始化方案不是官方推薦,如果業(yè)務(wù)確有需要,請對主要功能進(jìn)行完備測試。
注意事項(xiàng):onAppStart()方法再授權(quán)后的頁面調(diào)用。
如果在設(shè)置延遲初始化方案時(shí),廠商通道獲取消息為亂碼,需要在Application的onCreate方法中,在所有友盟SDK初始化之前,添加如下代碼段。
**備注:以下代碼段不會觸發(fā)設(shè)備等信息采集
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();
}
至此...再遇到新問題再添加,好久沒記錄問題了,文章比較糙,希望海涵,能幫助到你當(dāng)然最好啦。
感謝瀏覽??!