我在我的应用中使用Parse推送通知,我想在点击时在Activity中显示通知文字。这是我试图这样做的方式。
我创建了一个新活动,它应该处理名为PushNotification.class的传入通知,并在其中创建了这个自定义类:
public class PushNotification extends BroadcastReceiver {
private static final String TAG = "MyCustomReceiver";
@Override
public void onReceive(Context context, Intent intent) {
try {
String action = intent.getAction();
String channel = intent.getExtras().getString("com.parse.Channel");
JSONObject json = new JSONObject(intent.getExtras().getString("com.parse.Data"));
Log.d(TAG, "got action " + action + " on channel " + channel + " with:");
Iterator itr = json.keys();
while (itr.hasNext()) {
String key = (String) itr.next();
Log.d(TAG, "..." + key + " => " + json.getString(key));
}
String message = json.getString("alert");
} catch (JSONException e) {
Log.d(TAG, "JSONException: " + e.getMessage());
}
}
}
现在主要问题是这行代码不再有效:
PushService.setDefaultPushCallback(this, PushNotification.class);
它强调了“setDefaultPushCallback”部分,因为它显然不再将PushNotification.class识别为Activity。
我已经尝试过在parse.com上询问这个问题,但我没有得到太多帮助,我需要尽快解决这个问题。
答案 0 :(得分:3)
自定义推送通知
在你的Manifest中指定如下。
<service android:name="com.parse.PushService" />
<receiver
android:name="packagename.CustomParseBroadcastReceiver"
android:exported="false" >
<intent-filter>
<action android:name="custom-action-name" />
</intent-filter>
</receiver>
在解析仪表板中,您可以通过将文本设置为消息或Json格式来手动测试推送通知。
实际的JSON格式是
{“title”:“Custom Push-Android”,“objectId”:“ * ** iuy”, “objectType”:“type”,“action”:“custom-action-name”}
复制此格式并手动发送...
然后创建你的广播类..
样品:
public class CustomParseBroadcastReceiver extends BroadcastReceiver
{
public static final String ACTION = "custom-action-name";
@Override
public void onReceive(Context context, Intent intent) {
{
}
----
----
}
我希望,这有助于...............
答案 1 :(得分:0)
如果您从响应切换到活动推送,则必须在清单中指定广播接收器(请参阅Responding to an Intent):
<receiver android:name="com.example.PushNotification">
<intent-filter>
<action android:name="com.example.UPDATE_STATUS" />
</intent-filter>
</receiver>
此取代 PushService.setDefaultCallback调用。为此,您还必须在JSON有效负载中指定操作:
{"action":"com.example.UPDATE_STATUS", "alert":"Your message here"}