Как отправить уведомление отдельному пользователю приложения для Android - PullRequest
0 голосов
/ 13 мая 2019

Я работаю над приложением для Android, в котором клиент запрашивает работу.Когда его работа будет завершена, я хочу отправить уведомление, чтобы оставить отзыв на Android App.Сервер Api необходимо встроить в laravel, и уведомления будут отправляться через Firebase.Если у вас есть идея помочь материалу, пожалуйста, поделитесь.

Я пробовал много уроков на YouTube, но безуспешно.Большинство из них используют пользовательские php apis, но мне нужно использовать laravel и отправлять уведомления конкретному пользователю.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Прежде всего вам нужно получить InstanceToken из приложения в веб-интерфейсе и каким-то образом отправить его в бэкэнд.

После этого вы можете отправлять уведомления из бэкэнда с помощью Firebase. Взгляните на этот замечательный пакет, чтобы узнать, как это можно сделать: https://firebase -php.readthedocs.io / о / последняя / облако messaging.html

0 голосов
/ 13 мая 2019

Прежде всего вы получаете devicetoken из firebase, а затем отправляете уведомление из приложения, используя следующий код.

public class UtilsFcm {


static OkHttpClient mClient;
static Context context;
static JSONArray jsonArray;


public static void sendNotification(final Context context1, final JSONArray jsonArray1) {

    mClient = new OkHttpClient();
    context = context1;  
    jsonArray = jsonArray1;

    new MyTask().execute();

}


static class MyTask extends AsyncTask<String, String, String> {

    @Override
    protected String doInBackground(String... params) {


        try {

            for (int i = 0; i < jsonArray.length(); i++) {

                JSONObject root = new JSONObject();
                JSONObject notification = new JSONObject();
                notification.put("text", "Your notification message");                                     
                notification.put("title", "App Title");
                notification.put("line1", R.mipmap.ic_launcher);
                notification.put("line2", "high");

                root.put("to", jsonArray.get(i));
                root.put("data", notification);


                String result = postToFCM(root.toString());
                Log.d("Main Activity", "Result: " + result);
                return result;
            }
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return null;

    }

    @Override
    protected void onPostExecute(String result) {

        if (result != null) {
            try {
                JSONObject resultJson = new JSONObject(result);

            } catch (JSONException e) {
                e.printStackTrace();
                Toast.makeText(context, "" + e.toString(), Toast.LENGTH_SHORT).show();
            }
        }
    }
}


static String postToFCM(String bodyString) throws IOException {

    final String FCM_MESSAGE_URL = "https://fcm.googleapis.com/fcm/send";

    final MediaType JSON
            = MediaType.parse("application/json");

    RequestBody body = RequestBody.create(JSON, bodyString);
    Request request = new Request.Builder()
            .url(FCM_MESSAGE_URL)
            .post(body)
            .addHeader("Authorization", "key=" + "firebase_web_api_key")
            .build();
    Response response = mClient.newCall(request).execute();
    return response.body().string();
}

}

and then you call this method like this.
UtilsFcm.sendNotification(this,jsonArray);
here jsonarray have all device token.
hope this will help you.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...