3

ネイティブ アプリの Android でpostNotificationが必要です。

私はこのコードを持っていますが、動作しません:

try {
    OneSignal.postNotification(new JSONObject("{'contents': {'en':'Test Message'}, 'include_player_ids': ['" + userId + "']}"), null);
} catch (JSONException e) {
     e.printStackTrace();
}
4

2 に答える 2

3

の値がuserIdアカウントの有効な OneSignal ID であり、サブスクライブされていることを確認できますか?

代わりに次のコードを使用して、logcat ログを追加して問題をデバッグすることもできます。

try {
  OneSignal.postNotification(new JSONObject("{'contents': {'en':'Test Message'}, 'include_player_ids': ['" + "userId" + "']}"),
     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 e) {
  e.printStackTrace();
}
于 2016-04-28T18:38:09.240 に答える
0

これは私にとってはうまくいきました。IDが作成されているかどうかを確認してから、通知を投稿してください

OneSignal.idsAvailable(new OneSignal.IdsAvailableHandler() {
            @Override
            public void idsAvailable(String userId, String registrationId) {
                Log.d("debug", "UserId:" + userId);
                if (registrationId != null) {
                    String msg_welcome  = getResources().getString(R.string.msg_welcome);
                    Log.d("debug", "registrationId:" + registrationId);
                    try {
                        OneSignal.postNotification(new JSONObject("{'contents': {'en': '"+ msg_welcome +"'}, 'include_player_ids': ['" + userId + "']}"),
                                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 e) {
                        e.printStackTrace();
                    }
                }
            }
        });
于 2017-09-09T15:48:51.547 に答える