Parse.com:向 Android 客户端发送本地化推送通知 - 客户端实现是啥样的?
Posted
技术标签:
【中文标题】Parse.com:向 Android 客户端发送本地化推送通知 - 客户端实现是啥样的?【英文标题】:Parse.com: Sending a localized push notification to Android client - what does the client implementation look like?Parse.com:向 Android 客户端发送本地化推送通知 - 客户端实现是什么样的? 【发布时间】:2016-01-13 10:00:58 【问题描述】:我希望完全按照in this question 的描述进行操作,但要发送到 android 客户端。 Android客户端如何正确处理alert
对象中的loc-key
、loc-args
和action-loc-key
参数?
云代码:
Parse.Push.send(
where: pushQuery,
data:
title: title,
alert:
"loc-key":"msg",
"loc-args":["John"],
"action-loc-key":"rsp"
,
type: type
Android 客户端如何正确处理这些键并本地化推送?我是否必须手动对 Parse 广播接收器进行子类化?
【问题讨论】:
【参考方案1】:是的,你必须继承 Parse Broadcast 接收器
首先,在清单中声明一个接收器
<receiver android:name="com.example.PushReceiver" android:exported="false" >
<intent-filter>
<action android:name="com.parse.push.intent.RECEIVE" />
<action android:name="com.parse.push.intent.DELETE" />
<action android:name="com.parse.push.intent.OPEN" />
</intent-filter>
</receiver>
然后你创建一个 ParsePushBroadcastReceiver 子类并重写 onReceive 方法。
public class PushReceiver extends ParsePushBroadcastReceiver
@Override
public void onPushReceive(Context context, Intent intent)
try
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
//This is where you get your values
JSONObject alertObject = json.getJSONObject("alert");
catch (JSONException e)
e.printStackTrace();
【讨论】:
还有更多工作要做。我花了一个小时左右的时间,我也必须重写getNotification
方法——这很烦人,因为它构建了通知而不是将其留在 Builder 中。所以我不能修改它返回的 Notification 对象上的 alert
文本。唔。我可能只需要复制整个该死的方法并在那里进行警报本地化。为什么 Parse 让这件事变得如此复杂?
顺便说一句,正确的覆盖方法是onPushReceive
,而不是onReceive
- 但感谢您为我指明了正确的方向。
当然,我不知道为什么解析这么复杂,我已经用 GCM 做了几次,客户端部分更容易了以上是关于Parse.com:向 Android 客户端发送本地化推送通知 - 客户端实现是啥样的?的主要内容,如果未能解决你的问题,请参考以下文章
推送通知不适用于通过 Parse.com 发送的 Android 和 iOS 设备
如何使用 parse.com 将 Android 设备注册到推送通道