oppo开放平台
- 登录OPPO开放平台,依次选择“应用服务”--“移动服务”--“推送服务”--“申请接入”
推送服务.png
申请接入.png
- 创建新应用
创建应用.png
- 开启推送服务(同步骤1,然后点击右侧的未开启推送服务的应用--“详情页”--“申请开通“)
点击新创建的应用.png
申请开通.png
- 等待审核,审核后,点击"消息推送运营平台",进入OPPO推送平台-配置管理-应用配置-页面查看AppKey、AppSecret和MasterSecret(仅开发者帐号(主帐号)可查看)。
审核成功.png
应用配置.png
极光推送
- 创建应用
创建应用.png
2.选择推送服务
推送服务.png
- 填写App包名,以及勾选配置厂商(此处以oppo为例)后,最下方提示尚未配置,点击进行配置
勾选厂商.png
- 填写配置信息(在oppo开放平台取到的 id 以及 key 填写上),点击保存后,右上角会出现一个启用的按钮,点击启用。点击下一步,完成配置。
填写配置.png
一定要打开启用.png
项目配置
- 在
module
的gradle
中添加依赖等
apply plugin: 'com.android.application'
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "wang"
...
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64', 'mips', 'mips64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "2e524", //JPush 上注册的包名对应的 Appkey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
OPPO_APPKEY : "OP-您的应用对应的OPPO的APPKEY", // OPPO平台注册的appkey
OPPO_APPID : "OP-您的应用对应的OPPO的APPID", // OPPO平台注册的appid
OPPO_APPSECRET: "OP-您的应用对应的OPPO的APPSECRET"//OPPO平台注册的appsecret
]
}
...
}
dependencies {
...
implementation 'cn.jiguang.sdk:jcore:2.9.0'
implementation 'cn.jiguang.sdk:jpush:4.3.0'
// 接入oppo厂商
// 此要与jpush版本号保持一致
implementation 'cn.jiguang.sdk.plugin:oppo:4.3.0'
}
- 在
AndroidManifest
中配置一个Service
<!-- Since JCore2.0.0 Required SDK核心功能-->
<!-- 可配置android:process参数将Service放在其他进程中;android:enabled属性不能是false -->
<!-- 这个是自定义Service,要继承极光JCommonService,可以在更多手机平台上使得推送通道保持的更稳定 -->
<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 接口结果返回需要开发者配置一个自定的广播 -->
<!-- 3.3.0开始所有事件将通过该类回调 -->
<!-- 该广播需要继承 JPush 提供的 JPushMessageReceiver 类, 并如下新增一个 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="您应用的包名" />
</intent-filter>
</receiver>
- 初始化推送服务
public class ExampleApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
JPushInterface.setDebugMode(true);
JPushInterface.init(this);
}
}
- 验证,运行后筛选一下oppo,如下基本就是成功了
验证.png
- 注意:点击通知跳转,获取附加字段,oppo厂商不走极光receiver的回调
厂商通道在onCreate()
中获取String json = getIntent().getExtras().getString("JMessageExtra");
极光通道在receiver
中的方法onNotifyMessageOpened()
获取String json = notificationMessage.notificationExtras;
// 通过极光通道点开,获取如下
{"key":"123"}
// 通过厂商通道,获取如下
{
"show_type": 4,
"rom_type": 4,
"n_content": "内容2",
"n_extras": {
"key": "123"
},
"n_title": "标题2",
"msg_id": 20266442366999334,
"_j_data_": "{\"data_msgtype\":1,\"push_type\":4,\"is_vip\":0}"
}