Редактирайте съдържанието на съобщението в OneSignal notification Android

Опитвам се да променя текущия низ „Тестово съобщение“ в насочено известие на OneSignal. Просто искам да използвам променлива, дефинирана в моя код, но не мога да разбера как да го направя.

try {
    OneSignal.postNotification(new JSONObject("{'contents': ['en': 'Test Message'], 'include_player_ids': ['" + selectedUser.getOneSignalId() + "']}"),
    new OneSignal.PostNotificationResponseHandler() {
        @Override
        public void onSuccess(JSONObject response) {
            Log.i("OneSignalExample", "postNotification Success: " + response.toString());
        }

        @Override
        public void onFailure(JSONObject response) {
            Log.e("OneSignalExample", "postNotification Failure: " + response.toString());
        }
    });
} catch (JSONException f) {
    e.printStackTrace();
}

Успях да постигна нещо подобно при изпращането на известието до избран потребител. Сега просто искам да променя текста на действителното съобщение.


person Dylan Castanhinha    schedule 04.08.2017    source източник


Отговори (2)


Използвай това

String yourVaribale = " what ever you want to send"

OneSignal.postNotification(new JSONObject("{'contents': ['en': " +  yourVariable + "], 'include_player_ids': ['" + selectedUser.getOneSignalId() + "']}"),
                                                            new OneSignal.PostNotificationResponseHandler() {
                                                                @Override
                                                                public void onSuccess(JSONObject response) {
                                                                    Log.i("OneSignalExample", "postNotification Success: " + response.toString());
                                                                }

                                                                @Override
                                                                public void onFailure(JSONObject response) {
                                                                    Log.e("OneSignalExample", "postNotification Failure: " + response.toString());
                                                                }
                                                            });
                                                } catch (JSONException f) {
                                                    e.printStackTrace();
                                                }

или можете да опитате по този начин

String strJsonBody = "{"
                                                       +   "     \"app_id\": \"ef42157d-64e7-4ce2-9ab7-15db224f441b\","
                                                       +   "     \"included_segments\": [\"All\"],"
                                                       +   "     \"data\": {\"foo\": \"bar\"},"
                                                       +   "     \"contents\": {\"en\": \""+ description +"\"},"
                                                       +   "     \"headings\": {\"en\": \""+ title +"\"},"
                                                       +   "     \"big_picture\":\""+ imageurl +"\""


                                   + "}";

за втори метод следвайте тази връзка

person akshay_shahane    schedule 04.08.2017
comment
Когато опитам първия подход, получавам това. java.lang.ClassCastException: org.json.JSONArray не може да бъде прехвърлен към com.onesignal.OneSignal$PostNotificationResponseHandler - person Dylan Castanhinha; 04.08.2017

Решението по-долу работи за мен. Пълното име на текущия потребител е свързано към низа на съобщението „иска да ги следвате“. и след това се изпраща на избрания потребител с конкретния OneSignalID.

    OneSignal.postNotification(new JSONObject("{'contents': {'en': \""+ currentUser.getFullName() +" wants you to follow them." +"\"}, 'include_player_ids': ['" + selectedUser.getOneSignalId() + "']}"),
                new OneSignal.PostNotificationResponseHandler() {
                    @Override
                    public void onSuccess(JSONObject response) {
                        Log.i("OneSignalExample", "postNotification Success: " + response.toString());
                    }

                    @Override
                    public void onFailure(JSONObject response) {
                        Log.e("OneSignalExample", "postNotification Failure: " + response.toString());
                    }
                });
person Dylan Castanhinha    schedule 09.08.2017