【问题标题】:Sending push notification using Parse SDK on Android在 Android 上使用 Parse SDK 发送推送通知
【发布时间】:2015-06-15 12:02:52
【问题描述】:

我正在尝试做 ChatApp。我可以互相交谈。但是有一个问题。我想在向任何用户发送消息时使用推送通知。 所以我正在添加这些信息。我在 Parse 上有这些课程。 安装,会话,用户,聊天。 我正在为用户使用 User 类,为每个对话使用 Chat 类,例如有人向另一个人发送消息,我正在为我的聊天类添加一个对象。

所以我不知道如何发送推送通知。我想我应该使用 User objectId 来寻找好友。在这里我添加了我的 sendMessage 方法:

private void sendMessage() {
    if (txt.length()==0)
       return;
    InputMethodManager imm= (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
    imm.hideSoftInputFromWindow(txt.getWindowToken(), 0);

    String s=txt.getText().toString();
    final Conversation c=new Conversation(s,new Date(),UserList.user.getUsername());
    c.setStatus(Conversation.STATUS_SENDING);
    convList.add(c);
    adp.notifyDataSetChanged();
    txt.setText(null);

    ParseObject po=new ParseObject("Chat");
    po.put("sender",UserList.user.getUsername());
    po.put("receiver",buddy);
    po.put("message",s);
    po.saveEventually(new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null){
                c.setStatus(Conversation.STATUS_SENT);
            }
            else {
                c.setStatus(Conversation.STATUS_FAILED);
            }
            adp.notifyDataSetChanged();
        }
    });
}

【问题讨论】:

    标签: android push-notification push


    【解决方案1】:

    使用以下代码发送推送通知:

    public void  sendpushnotification(String buddyObjectId,String message,String type,String chatObjectID){
       ParseQuery query = ParseInstallation.getQuery(); 
    
        query.whereEqualTo("owner",owner);    
        ParsePush push = new ParsePush();
        push.setQuery(query);
        try {
            JSONObject data = new JSONObject("{\"action\": \"{Action name}\",\"alert\":\""+message+"\",\"mid\":\""+chatObjectID+"\",\"pid\":\""+chatObjectID+"\",\"t\": \""+type+"\"}");
            push.setData(data);
        } catch (JSONException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    
    
        push.sendInBackground();
    
     }
    

    其中 buddyObjectId 是好友对象 ID

    chatObjectID为保存后的聊天消息对象id

    type 是消息的类型(如果有)。

    还要确保在创建用户时将用户对象 id 保存在安装表的所有者列中。

    【讨论】:

    • 如何将userObjectID保存在安装表的所有者列中? @user3107331
    • ParseInstallation.getCurrentInstallation().put("owner", ParseUser.getCurrentUser().getObjectId()); ParseInstallation.getCurrentInstallation().saveEventually();
    • 当我用这个代码获取好友时; ParseQuery 查询=ParseUser.getQuery(); query.whereEqualTo("用户名",buddy); query.findInBackground(....);它返回给我一个列表,但我怎样才能在他的列表中找到好友的对象 ID?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-17
    • 2015-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多