# #android #firebase #android-push-notification
Вопрос:
Я пытаюсь открыть страницу браузера по определенному URL-адресу после того, как пользователь откроет полученное им Push-уведомление FCM. Это код, который у меня сейчас есть:
import android.content.Intent;
import android.net.Uri;
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
public class FMMessagingService extends FirebaseMessagingService {
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com"));
startActivity(browserIntent);
}
}
При нажатии на push-уведомление с консоли FCM ничего не происходит. Я некоторое время возился с этим, ища решения в Интернете, но, похоже, ничего не работает.
Пожалуйста, может ли кто-нибудь помочь с этой проблемой?
Обратите внимание, я невероятно новичок в этом и многого не понимаю.
Ответ №1:
Вы можете использовать уведомление о данных с помощью Intent.ACTION_VIEW
Intent notificationIntent = new Intent(Intent.ACTION_VIEW);
notificationIntent.setData(Uri.parse(link));
PendingIntent pending = PendingIntent.getActivity(this, 0, notificationIntent,
Intent.FLAG_ACTIVITY_NEW_TASK);
myNotification.setContentIntent(pending);
Если в сообщении есть данные, уведомление доставляется в системный трей устройства, а полезная нагрузка данных доставляется в extras
соответствии с намерением вашей активности запуска. В соответствии с предоставленными данными вы можете соответствующим образом справиться с этим состоянием.
Установите click_action в полезной нагрузке уведомления
{
"notification": {
"click_action": "activity action"
},
....
}
В mainfest вам нужно настроить межфильтр.
<intent-filter>
<action android:name="some action" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
затем, когда вы нажмете на нее, она откроет это действие:
Если указано, действие с соответствующим фильтром намерений запускается, когда пользователь нажимает на уведомление.
Вы можете установить действие click_action в соответствии с действием выбора браузера или «Намерение.ACTION_VIEW» и такой набор данных "https://"