#android #android-fragments #webview #onesignal
#Android #android-фрагменты #webview #onesignal
Вопрос:
Как открыть URL-адрес в webview при отправке push-уведомления onesignal, прямо сейчас оно открывается в браузере по умолчанию и как обработать целевой URL-адрес с помощью обработчика уведомлений. Вот пример кода, в котором я хочу реализовать уведомление onesignal, и я старался изо всех сил, но не смог справиться с этим. Есть предложения от экспертов.
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
OneSignal.startInit(this).init();
}
обработка
Ответ №1:
Вот моя реализация… Я добавил этот код в свой класс приложения onCreate()
OneSignal.startInit(this).setNotificationOpenedHandler(new OneSignal.NotificationOpenedHandler() {
@Override
public void notificationOpened(OSNotificationOpenResult result) {
String launchURL = result.notification.payload.launchURL;
if (launchURL != null) {
Log.d(Const.DEBUG, "Launch URL: " launchURL);
Intent intent = new Intent(getApplicationContext(), WebViewActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("url", launchURL);
startActivity(intent);
} else {
Log.d(Const.DEBUG, "Launch URL not found");
Intent intent = new Intent(getApplicationContext(), SplashActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}).init();
Ответ №2:
Для этого вы должны указать свой URL-адрес в качестве дополнительного поля данных, а не в качестве URL-адреса запуска.
Затем, используя OneSignal Android NotificationReceivedHandler, вы можете получить эти дополнительные данные и открыть webview по URL-адресу.
Комментарии:
1. Gdeglin, спасибо, что мы прочитали документацию перед самим собой, проблема в том, что мы не получаем никакой точной документации или примера, поэтому очень сложно реализовать конкретную функцию one-signal в нашем.
Ответ №3:
Одна из возможностей заключается в создании двух типов сообщений: одно для отправки в браузеры, а другое — в приложения. В этом вопросе приведен один пример того, как это можно сделать: https://wordpress.org/support/topic/variable-launchurl
Не уверен, поможет ли это вашему делу, но я надеюсь на это.