如何使用firebase推送通知唤醒flutter android应用程序
Posted
技术标签:
【中文标题】如何使用firebase推送通知唤醒flutter android应用程序【英文标题】:How to wake up flutter android app with firebase push notification 【发布时间】:2021-08-19 12:37:04 【问题描述】:我如何在接收到 firebase 消息时使用广播接收器/意图打开 Flutter android 应用程序。
【问题讨论】:
当它不是一个打开的应用程序时,即在后台或前台(意味着当应用程序对用户可见时)。 你可以在这里查看***.com/questions/48403786/… 【参考方案1】:实现 FirebaseMessagingService 并从 onMessageReceived 启动 Main Activity:
public class FirebaseMsgService extends FirebaseMessagingService
@Override
public void onMessageReceived(RemoteMessage remoteMessage)
//...
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
您可能还想在 MainActivity 中解锁设备:
public class MainActivity extends FlutterActivity
@Override
public void configureFlutterEngine(@NonNull FlutterEngine flutterEngine)
GeneratedPluginRegistrant.registerWith(flutterEngine);
Window window = this.getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
window.addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
【讨论】:
flutter项目如何实现?【参考方案2】:@Develocode777 提供的答案将在 android 9 之前有效。从 android 10 开始,不再允许这种行为。您可以在此页面中了解更多信息,Restrictions on starting activities from the background。 如果您打算显示通知,并且在单击通知时要打开应用程序,它会正常工作,但在没有用户交互的情况下打开应用程序,在 Android 10 及更高版本中是不允许的。
【讨论】:
whatsapp 上的 incominhcalls 怎么样? 这是一种特殊类型的通知,称为全屏意图通知。当您接到 whatsapp 电话并且正在使用设备时,您将看到一个提醒通知,而不是整个应用程序。仅当任一手机被锁定或您点击提醒通知时,才会显示整个应用程序。 flutter如何实现? 对于这么晚的回复非常抱歉,我完全忘记了这一点。这将在原生的 android 和 ios 上单独实现。如果您尝试将您的 mainactivity 显示为全屏应用程序,那么颤振应用程序本身就会出现,但它的行为非常奇怪。如果设置了唤醒锁,事情会变得更加奇怪。更好地原生实现以上是关于如何使用firebase推送通知唤醒flutter android应用程序的主要内容,如果未能解决你的问题,请参考以下文章
使用firebase发送静默推送通知,以便在应用程序被杀死时唤醒它
如何在没有 Firebase 和自定义后端的情况下使用 Flutter 设置推送通知
Flutter 推送通知应用背景:firebase_messaging