Android uygulamanıza one signal entegre ettiğinizde bildirim olarak gönderilen linkler uygulama içerisinde açılmaz. Cihazdaki tarayıcıda açılır. Bu durumu düzeltmek için yapılması gereken bazı adımlar vardır. Şimdi onlara bakalım.
ApplicationClass.java Dosyamızda onCreate() Metodu Altına Eklenecekler
OneSignal.startInit(this).setNotificationOpenedHandler(new OneSignal.NotificationOpenedHandler() {
@Override
public void notificationOpened(OSNotificationOpenResult result) {
String launchURL = result.notification.payload.launchURL;
if (launchURL != null) {
Intent intent = new Intent(getApplicationContext(), Main2Activity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("url", launchURL);
startActivity(intent);
} else {
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
}
}).init();
Yukarıdaki kodda Main2Activity.class yazan yeri kendi WebView uygulamanızın aktivitesi ile değiştirin. intent.putExtra(“url”, launchURL); kodu ile bildirim olarak gelen url’yi yakalayıp WebView aktivitemize gönderiyoruz.
Gönderilen url’yi WebView aktivitemizden yakalamamız gerekiyor. Bunun için Aşağıdakileri uyguluyoruz.
String url;
Bundle extras = getIntent().getExtras();
if(extras != null){
url = extras.getString("url");
}
Gelen url değerini url değişkenine aktardık bundan sonra yapmanız gereken webview bileşeninde bu url’yi çalıştırmak olacaktır.