使用 Parse.com 从推送通知中提取文本

Posted

技术标签:

【中文标题】使用 Parse.com 从推送通知中提取文本【英文标题】:Extracting text from Push Notification using Parse.com 【发布时间】:2014-08-11 21:18:14 【问题描述】:

我正在尝试制作一个接收器以从 Parse.com 提供支持的推送通知中提取文本,我收到了通知,但看起来我的 BroadcastReceiver 没有被调用,因为 Log.d 没有记录

我的 MainActivity.java onCreate()

@Override
public void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Parse.initialize(this, "-", "-"); //removed keys for question
    PushService.setDefaultPushCallback(this, MainActivity.class);
    ParseAnalytics.trackAppOpened(getIntent());   

我的 Manifest.xml 接收器

<service android:name="com.parse.PushService" />

    <receiver android:name="com.parse.ParseBroadcastReceiver" >
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.example.parsepushnotificationreceiver.MyCustomReceiver"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.example.parsepushnotificationreceiver.UPDATE_STATUS" />
        </intent-filter>
    </receiver>
    <receiver
        android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <category android:name="com.example.parsepushnotificationreceiver" />
        </intent-filter>
    </receiver>

我的 BroadcastReceiver 类

@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));
        
     catch (JSONException e) 
        Log.d(TAG, "JSONException: " + e.getMessage());
    


我的包裹是

package com.example.parsepushnotificationreceiver;

谢谢,

解决方案:

得到它的工作,这个想法是在 json 对象被自己发送,模板 "action": "com.example.parsepushnotificationreceiver.UPDATE_STATUS", “名称”:“沃恩”, "newsItem": "人咬狗"

【问题讨论】:

您可能不应该在您的问题中发布您的个人 PARSE_APPLICATION_ID 和 PARSE_CLIENT_KEY... @LarryMcKenzie 没关系,它是一个测试应用程序,但我删除了它们,谢谢,有什么解决方案吗?谢谢 我从未使用过它,但我正在阅读文档。 @LarryMcKenzie 太好了,谢谢你的帮助 :) 让它工作了,这个想法是在 json 对象中被它自己发送,模板 "action": "com.example.parsepushnotificationreceiver.UPDATE_STATUS", "name": "Vaughn", "newsItem ": "人咬狗" 【参考方案1】:

解决方案:

得到它的工作,这个想法是在 json 对象被自己发送,模板 “action”:“com.example.parsepushnotificationreceiver.UPDATE_STATUS”,“name”:“Vaughn”,“newsItem”:“Man beats狗”

【讨论】:

以上是关于使用 Parse.com 从推送通知中提取文本的主要内容,如果未能解决你的问题,请参考以下文章

从 Parse.com 查询或保存传入的推送通知

使用 parse.com 处理应用程序中的推送通知

Parse.com - 从 Parse.com 向 iOS 应用程序发送消息,不像推送通知

从 parse.com 控制台接收推送时显示警报对话框而不是通知

parse.com 上的 Apple 推送通知

如何使用 Parse.com 推送通知服务在 Android 应用程序中推送 URL?