Android 推送¶

Android 推送¶

华为推送¶

华为推送是为开发者提供的消息推送平台,建立了从云端到手机端的消息推送通道,让应用可以将最新信息及时通知你的用户,从而构筑良好的用户关系,提升用户的活跃度。华为Push支持透传消息、通知栏消息、富媒体消息。更多信息请参考 华为推送服务 。

华为推送工作原理

Step 1: 开发者的 App 集成华为 Push 客户端 SDK,并调用相关接口获取 PushToken;

Step 2: 开发者的App将获取到的华为 PushToken 上报到开发者自己的服务器上;

Step 3: 开发者利用服务器上保存的 PushToken 向设备上的 App 发送通知消息;

Step 4: 消息携带的 PushToken 作为鉴权和路由机制会通过华为 Push 平台将消息发送到最终用户设备上。

华为推送集成操作流程如下:

配置和注册华为 Push¶

首先在 华为开发者网站 注册,并在华为推送服务创建应用,具体请参考 华为推送服务接入准备 。

应用创建后将获得 APPID 和 APP SECRET。

其中:APPID(全称 applicationID)是华为开发者为APP分联盟配的唯一标识。

APP SECRET 为应用秘钥,在开发 PUSH 服务端(app provider)时需要用到此参数。

将 AppID、APP SECRET 设置到 Juphoon Cloud Platform 控制台的对应应用中。

登录 Juphoon Cloud Platform 并打开应用,进入 设置 > 基本 > +添加push > HMSpush 配置,如下图所示:

获取 Token。

终端调用华为 Push 接口,使用 AppID 向华为 Push 服务器注册服务,并获得 Token。具体如下:

在 AndroidManifest 中将 AppID 替换成自己的 AppID 值。

在 HMSPushReceiver 中将 AppID 替换成自己的 AppID 值。

您也可以参考 华为推送服务客户端开发指南。

调用 Juphoon Cloud Platform SDK 接口将 Token 注册到 Juphoon Cloud Platform 服务器中。

代码集成¶

初始化 Push

/**

* 创建 JCPush 对象

*

* @param client JCClient 对象

* @return 返回 JCPush 对象

*/

public static JCPush create(JCClient client);

示例代码:

JCClient client = JCClient.create(Context, "your appkey", this, null);

JCPush push = JCPush.create(client);

注册华为 push

在 HMSPushReceiver 类中的 onToken 成功收到回调之后,调用 initWithHmsPush 接口进行注册:

public void onToken(Context context, String s, Bundle bundle) {

super.onToken(context, s, bundle);

// 向菊风平台添加推送参数

JCPushTemplate pushInfo = new JCPushTemplate();

pushInfo.initWithHmsPush("your AppId", s);

JCManager.getInstance().push.addPushInfo(pushInfo);

// 设置通话推送参数

pushInfo.initWithCall(JCPushTemplate.HUAWEI, JCManager.getInstance().client.getUserId(), "呼叫", "1");

JCManager.getInstance().push.addPushInfo(pushInfo);

// 设置消息推送参数

pushInfo.initWithText(JCPushTemplate.HUAWEI, JCManager.getInstance().client.getUserId(), "Text", "消息", "1");

JCManager.getInstance().push.addPushInfo(pushInfo);

}

其中,initWithHmsPush 接口如下

/**

* 生成华为推送参数

*

* @param appId Justalk cloud 上注册的该应用的华为Push 的 AppId 值

* @param token 华为推送注册成功返回的 regId

*/

public void initWithHmsPush(String AppId, String token);

设置推送参数接口如下:

通话推送参数

/**

* 生成通话推送参数

*

* @param pushFactory 推送厂商

* @param selfId 自身唯一标识符

* @param description 描述信息,如 "呼叫"

* @param passThrough 华为推送相关参数,"1"表示透传消息,"0"表示非透传消息,可以参看华为推送文档,目前只支持透传消息,因华为特殊的格式,不建议使用非透传消息

*/

public void initWithCall(@PushFactory int pushFactory, String selfId, String description, String passThrough);

消息推送参数

/**

* 生成消息类推送参数

*

* @param pushFactory 推送厂商

* @param selfId 自身唯一标识符

* @param type 消息类型,自定义类型,如 Text

* @param description 提示内容,针对文本消息如果要提示发送内容,则填 null,类似文件消息则要填相应的信息,例如 "发送了一段语音"

* @param passThrough 华为推送相关参数,"1"表示透传消息,"0"表示非透传消息,可以参看华为推送文档,目前只支持透传消息,因华为特殊的格式,不建议使用非透传消息

*/

public void initWithText(@PushFactory int pushFactory, String selfId, String type, String description, String passThrough);

添加推送模板接口如下:

/**

* 添加推送模板,用于服务器将不同类型的推送以不同的内容格式推给客户端

*

* @param info 推送信息

* @return 成功返回true,失败返回false

*/

public abstract boolean addPushInfo(JCPushTemplate info);

注解

在收到消息推送时,可以在 HMSPushReceiver 类中的 onPushMsg 中进行自定义的消息处理。

由于 app 杀死以后点击 push 不会回调 onEvent(因为广播被系统限制了),所以自定义动作的处理统一用 intent 来实现。参数传递依赖 android 结构体中的intent参数。intent 中处理消息的组件只能是 activity,不能是 service 或 receiver。

示例代码:

public void onPushMsg(Context context, byte[] bytes, String s) {

// 收到华为 push 后续处理

Intent intent = new Intent(JCApplication.sContext, MainActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

JCApplication.sContext.startActivity(intent);

super.onPushMsg(context, bytes, s);

}

验证推送¶

推送集成后,即可进行验证,具体如下:

使用用户名登录您的 App,登录后将 App 从后台杀掉。

重要

透传消息需要设置开机自启动才能拉起应用。

进入 Juphoon for developer ->控制台 ->我的应用 ->设置 ->基本 ->验证 Push。

输入用户名和推送内容,点击验证,此时页面应提示“push 信息发送到服务器成功”。

相关推荐

饥荒咖啡怎么做 饥荒咖啡制作方法以及食谱一览
体育365投注官网

饥荒咖啡怎么做 饥荒咖啡制作方法以及食谱一览

📅 10-14 👁️ 968
寄橘子物流(寄橘子用物流怎么收费)
365betapp投注

寄橘子物流(寄橘子用物流怎么收费)

📅 10-11 👁️ 7253