2016-12-23 79 views
1

我需要的是,當用戶點擊一個按鈕,推送通知將被髮送到所有使用這個應用程序的用戶。 我嘗試在setOnclickListener方法中使用此代碼,但單擊它後沒有發送任何內容。發送解析推送通知按鈕點擊android

注意:從Parse Dashboard發送推送通知完美地工作 罰款。

 ParsePush parsePush = new ParsePush(); 
     ParseQuery query = ParseInstallation.getQuery(); 
     parsePush.setQuery(query); 
     parsePush.setMessage("A new file has been Updated. Check it out!"); 
     parsePush.sendInBackground(new SendCallback() { 

      @Override 
      public void done(ParseException arg0) { 
       // TODO Auto-generated method stub 
       Log.d(TAG, "SendCallback success:"); 
       if(arg0 == null) 
       { 
        Log.d(TAG, 
          "suceess push notification :"); 
       } 
       else 
       { 
        Log.d(TAG, 
          "failed push notification :" 
            + arg0.getMessage()); 
       } 
      } 
     }); 
    } 
}); 

- 編輯 - 響應布拉德利·威爾遜的答案 - 這仍然沒有工作

ParsePush parsePush = new ParsePush(); 
ParseQuery<ParseInstallation> parseQueryInstallation = ParseQuery.getQuery(ParseInstallation.class); 
parsePush.setQuery(parseQueryInstallation); 
parsePush.setMessage("A new file has been Updated. Check it out!"); 
parsePush.sendInBackground(new SendCallback() { 

    @Override 
    public void done(ParseException arg0) { 
     // TODO Auto-generated method stub 
     Log.d(TAG, "SendCallback success:"); 
     if(arg0 == null) 
     { 
      Log.d(TAG, 
        "suceess push notification :"); 
     } 
     else 
     { 
      Log.d(TAG, 
        "failed push notification :" 
          + arg0.getMessage()); 
     } 
    } 

- EDIT 2 - 響應蘇雷什·庫馬爾的答案 - 對於一些原因,雲代碼從未在我的項目中起作用。它只是不識別任何Cloud代碼並將其保留爲紅色as shown in this image

+0

嘗試ParseQuery parseQueryInstallation = ParseQuery.getQuery(ParseInstallation.class);而不是ParseInstallation.getQuery(); –

+0

@BradleyWilson謝謝你的回答^^我試過替換它(我在我的問題中編輯了它),但它仍然無效 –

回答

1

在Parse中發送推送通知的更好方法是通過雲代碼。使用ParseCloud.callFunctionInBackground()創建一個雲端函數來發送推送通知並在android中調用該雲端函數。

HashMap<String, Object> params = new HashMap<String, Object>(); 
params.put("recipientId", userObject.getObjectId()); 
params.put("message", message); 
ParseCloud.callFunctionInBackground("sendPushToUser", params, new FunctionCallback<String>() { 
    void done(String success, ParseException e) { 
     if (e == null) { 
      // Push sent successfully 
     } 
    } 
}); 

看看這個link

+0

謝謝你的回答^^我編輯了我的問題以迴應你的回答 –