2016-02-05 2 views
4

Я довольно новичок в Android, и я очень надеюсь, что это будет легко решить для вас, ребята!Вывод данных Parse Push JSON на Android

Я хочу, чтобы пользователи могли отправлять push другим пользователям после нажатия кнопки в моем приложении. Это было правильно настроить ParsePush на моей кнопкой мыши слушателя, потому что это работает отлично:

  // Create our Installation query 
      ParseQuery pushQuery = ParseInstallation.getQuery(); 
      pushQuery.whereEqualTo("installationId", installationId); //Send to targeted user 

      // Send push notification to query 
      ParsePush push = new ParsePush(); 
      push.setQuery(pushQuery); // Set our Installation query 

      push.setMessage("HEY YOU"); 
      push.sendInBackground(); 

Но я хотел бы добавить URI в моем толчке, так что я сделал:

   // Create our Installation query 
      ParseQuery pushQuery = ParseInstallation.getQuery(); 
      pushQuery.whereEqualTo("installationId", installationId); 

      // Send push notification to query 
      ParsePush push = new ParsePush(); 
      push.setQuery(pushQuery); // Set our Installation query 

      String string = "{\"title\" : \"my title\",\"alert\" : \"my alert text\",\"uri\" : \"myapp://host/path\"}"; 

      try { 
       JSONObject data = new JSONObject(string); 
       push.setData(data); 
      } catch (JSONException e) { 
       Log.e("MYAPP", "unexpected JSON exception", e); 
      } 

      push.sendInBackground(); 

В моей Android Manifest У меня есть целевая деятельность:

 <activity android:name=".Accept_Action"> 
     <intent-filter> 
      <action android:name="android.intent.action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 

      <data android:scheme="myapp" android:host="host" android:path="/path" /> 
     </intent-filter> 
    </activity> 

Но по какой-то причине это не работает. Толкание никогда не приземляется на мое целевое устройство. Можете ли вы помочь мне сделать эту работу? Благодаря

+1

:) да я знаю, спасибо за заботу. Но я начал с Parse, и мой MVP почти закончен, поэтому я хотел разблокировать эту последнюю часть. Плюс, это на самом деле повышает мои общие знания Java и Android dev –

+0

Вы видите ошибку в журналах? Вы видите push, отправленный в интерфейсе анализа? – meynety

+0

Нет ошибок в моих журналах, никаких уведомлений в parse Inteface:/@meynety –

ответ

1

Ответ на ваш вопрос

К сожалению, по соображениям безопасности, вы не можете использовать опцию «Ури» разбора толчке от клиента.

Источники:

Предложения для решения

Я вижу два возможных решения этой проблемы:

Для учебных целей

Вы могли видеть эту ошибку просто, реализовав обратный вызов действия sendInBackground(), чтобы увидеть фактический результат действия, например:

push.sendInBackground(new SendCallback() { 
      @Override 
      public void done(ParseException e) { 
       if (e != null) { 
        e.printStackTrace(); 
       } else { 
        Log.e("MYAPP", "Push sent."); 
       } 
      } 
     }); 

Поэтому e.printStackTrace(); бы напечатает Вам выше ошибки 115:

com.parse.ParseRequest$ParseRequestException: Client-initiated push cannot use the "uri" option 
+0

Большое спасибо за помощь. Позвольте мне проверить это и вернуться к вам! –

+0

Любое обновление по этому вопросу? – meynety

+0

Эй, @meynety, извините за то, что так долго, чтобы вернуться к вам. Теперь я работаю над функцией облачного кода, как было предложено! Спасибо за помощь! –