oppo開放平臺(tái)
- 登錄OPPO開放平臺(tái)咖刃,依次選擇“應(yīng)用服務(wù)”--“移動(dòng)服務(wù)”--“推送服務(wù)”--“申請(qǐng)接入”
推送服務(wù).png
申請(qǐng)接入.png
- 創(chuàng)建新應(yīng)用
創(chuàng)建應(yīng)用.png
- 開啟推送服務(wù)(同步驟1窘面,然后點(diǎn)擊右側(cè)的未開啟推送服務(wù)的應(yīng)用--“詳情頁”--“申請(qǐng)開通“)
點(diǎn)擊新創(chuàng)建的應(yīng)用.png
申請(qǐng)開通.png
- 等待審核,審核后的止,點(diǎn)擊"消息推送運(yùn)營(yíng)平臺(tái)",進(jìn)入OPPO推送平臺(tái)-配置管理-應(yīng)用配置-頁面查看AppKey着撩、AppSecret和MasterSecret(僅開發(fā)者帳號(hào)(主帳號(hào))可查看)诅福。
審核成功.png
應(yīng)用配置.png
極光推送
- 創(chuàng)建應(yīng)用
創(chuàng)建應(yīng)用.png
2.選擇推送服務(wù)
推送服務(wù).png
- 填寫App包名,以及勾選配置廠商(此處以oppo為例)后拖叙,最下方提示尚未配置氓润,點(diǎn)擊進(jìn)行配置
勾選廠商.png
- 填寫配置信息(在oppo開放平臺(tái)取到的 id 以及 key 填寫上),點(diǎn)擊保存后薯鳍,右上角會(huì)出現(xiàn)一個(gè)啟用的按鈕咖气,點(diǎn)擊啟用。點(diǎn)擊下一步挖滤,完成配置崩溪。
填寫配置.png
一定要打開啟用.png
項(xiàng)目配置
- 在
module
的gradle
中添加依賴等
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "wang"
...
ndk {
//選擇要添加的對(duì)應(yīng) cpu 類型的 .so 庫。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 還可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "2e524", //JPush 上注冊(cè)的包名對(duì)應(yīng)的 Appkey.
JPUSH_CHANNEL : "developer-default", //暫時(shí)填寫默認(rèn)值即可.
OPPO_APPKEY : "OP-您的應(yīng)用對(duì)應(yīng)的OPPO的APPKEY", // OPPO平臺(tái)注冊(cè)的appkey
OPPO_APPID : "OP-您的應(yīng)用對(duì)應(yīng)的OPPO的APPID", // OPPO平臺(tái)注冊(cè)的appid
OPPO_APPSECRET: "OP-您的應(yīng)用對(duì)應(yīng)的OPPO的APPSECRET"http://OPPO平臺(tái)注冊(cè)的appsecret
]
}
...
}
dependencies {
...
implementation 'cn.jiguang.sdk:jcore:2.9.0'
implementation 'cn.jiguang.sdk:jpush:4.3.0'
// 接入oppo廠商
// 此要與jpush版本號(hào)保持一致
implementation 'cn.jiguang.sdk.plugin:oppo:4.3.0'
}
- 在
AndroidManifest
中配置一個(gè)Service
<!-- Since JCore2.0.0 Required SDK核心功能-->
<!-- 可配置android:process參數(shù)將Service放在其他進(jìn)程中斩松;android:enabled屬性不能是false -->
<!-- 這個(gè)是自定義Service伶唯,要繼承極光JCommonService,可以在更多手機(jī)平臺(tái)上使得推送通道保持的更穩(wěn)定 -->
<service android:name="xx.xx.XService"
android:enabled="true"
android:exported="false"
android:process=":pushcore">
<intent-filter>
<action android:name="cn.jiguang.user.service.action" />
</intent-filter>
</service>
- 在
AndroidManifest
中配置配置繼承JPushMessageReceiver
的廣播
<!-- Required since 3.0.7 -->
<!-- 新的 tag/alias 接口結(jié)果返回需要開發(fā)者配置一個(gè)自定的廣播 -->
<!-- 3.3.0開始所有事件將通過該類回調(diào) -->
<!-- 該廣播需要繼承 JPush 提供的 JPushMessageReceiver 類, 并如下新增一個(gè) Intent-Filter -->
<receiver
android:name="自定義 Receiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="cn.jpush.android.intent.RECEIVE_MESSAGE" />
<category android:name="您應(yīng)用的包名" />
</intent-filter>
</receiver>
- 初始化推送服務(wù)
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
- 驗(yàn)證惧盹,運(yùn)行后篩選一下oppo乳幸,如下基本就是成功了
驗(yàn)證.png
- 注意:點(diǎn)擊通知跳轉(zhuǎn),獲取附加字段钧椰,oppo廠商不走極光receiver的回調(diào)
廠商通道在onCreate()
中獲取String json = getIntent().getExtras().getString("JMessageExtra");
極光通道在receiver
中的方法onNotifyMessageOpened()
獲取String json = notificationMessage.notificationExtras;
// 通過極光通道點(diǎn)開,獲取如下
{"key":"123"}
// 通過廠商通道粹断,獲取如下
{
"show_type": 4,
"rom_type": 4,
"n_content": "內(nèi)容2",
"n_extras": {
"key": "123"
},
"n_title": "標(biāo)題2",
"msg_id": 20266442366999334,
"_j_data_": "{\"data_msgtype\":1,\"push_type\":4,\"is_vip\":0}"
}