Android极光推送(接入Oppo厂商)

oppo开放平台

  1. 登录OPPO开放平台,依次选择“应用服务”--“移动服务”--“推送服务”--“申请接入”
推送服务.png

申请接入.png
  1. 创建新应用
创建应用.png
  1. 开启推送服务(同步骤1,然后点击右侧的未开启推送服务的应用--“详情页”--“申请开通“)
点击新创建的应用.png

申请开通.png
  1. 等待审核,审核后,点击"消息推送运营平台",进入OPPO推送平台-配置管理-应用配置-页面查看AppKey、AppSecret和MasterSecret(仅开发者帐号(主帐号)可查看)。
审核成功.png

应用配置.png

极光推送

  1. 创建应用
创建应用.png

2.选择推送服务

推送服务.png
  1. 填写App包名,以及勾选配置厂商(此处以oppo为例)后,最下方提示尚未配置,点击进行配置
勾选厂商.png
  1. 填写配置信息(在oppo开放平台取到的 id 以及 key 填写上),点击保存后,右上角会出现一个启用的按钮,点击启用。点击下一步,完成配置。
填写配置.png
一定要打开启用.png

项目配置

  1. modulegradle中添加依赖等
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'
}
  1. 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>    
  1. 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>
  1. 初始化推送服务
public class ExampleApplication extends Application {
    @Override
        public void onCreate() {
            super.onCreate();
            JPushInterface.setDebugMode(true);
            JPushInterface.init(this);
       }
   }

  1. 验证,运行后筛选一下oppo,如下基本就是成功了
验证.png
  1. 注意:点击通知跳转,获取附加字段,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}"
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容