- 先到极光推送后台开通厂商推送功能(此功能需要收费,需要联系商务开通)
- 到各厂商开发者平台注册应用,然后对应开启推送功能,获取对应的key和secret
需要注意的是,有些厂商在申请推送功能时审核时间有点长,最好提前申请
- 到极光后台推送设置-厂商通道页面里填写申请的对应的key和secret
- 到极光官网获取厂商推送SDK
厂商推送功能其实是极光帮忙帮厂商推送的SKD进行封装后集成到极光的SDK里,所以需要按照极光提供的文档进行接入,不需要再考虑对应平台的计入方法
// 极光
api 'cn.jiguang.sdk:jpush:3.3.8'
api 'cn.jiguang.sdk:jcore:2.1.6'
//huawei push
api 'cn.jiguang.sdk.plugin:huawei:3.3.8'
//xiaomi push
api 'cn.jiguang.sdk.plugin:xiaomi:3.3.8'
//oppo push
api 'cn.jiguang.sdk.plugin:oppo:3.3.8'
//vivo push
api 'cn.jiguang.sdk.plugin:vivo:3.3.8'
- 到应用中集成SDK,并按照极光的模板填写申请的不同平台的key和secret
需要注意的是小米推送的APPID和APPKEY,以MI-开头,OPPO的APPID、APPKEY和APPSECRET,以OP-开头
manifestPlaceholders = [ UMENG_APPKEY : "xxxxxxxxx",
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "xxxxxxxxx",
HUAWEI_APPID : "xxxxxxxxx",
XIAOMI_APPID : "MI-xxxxxxxxx",
XIAOMI_APPKEY : "MI-xxxxxxxxx",
VIVO_APPID : "xxxxxxxxx",
VIVO_APPKEY : "xxxxxxxxx",
OPPO_APPID : "OP-xxxxxxxxx",
OPPO_APPKEY : "OP-xxxxxxxxx",
OPPO_APPSECRET : "OP-xxxxxxxxx" ]
- 注册中转处理页面处理通知内容,以供厂商推送的通知点击后跳转
厂商推送的通知,在点击后会自动打开注册的页面,如果没注册会自动打开应用,不再通过极光通用的Receiver接收
public class PushHelpActivity extends Activity {
/**消息Id**/
private static final String KEY_MSGID = "msg_id";
/**该通知的下发通道**/
private static final String KEY_WHICH_PUSH_SDK = "rom_type";
/**通知标题**/
private static final String KEY_TITLE = "n_title";
/**通知内容**/
private static final String KEY_CONTENT = "n_content";
/**通知附加字段**/
private static final String KEY_EXTRAS = "n_extras";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Logger.i("push onCreate ");
handleOpenClick();
finish();
}
/**
* 处理点击事件,当前启动配置的Activity都是使用
* Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK
* 方式启动,只需要在onCreat中调用此方法进行处理
*/
private void handleOpenClick() {
String data = null;
//获取华为平台附带的jpush信息
if (getIntent().getData() != null