debugging 如何调试从killed / terminated状态启动的Flutter应用程序,例如接收FCM消息?

zi8p0yeb  于 2023-04-06  发布在  Flutter
关注(0)|答案(1)|浏览(112)

我想测试应用处于终止状态时收到的FCM消息。问题是Android Studio在我终止应用后失去连接。如何在启动时重新连接到Android Studio调试器?
我发现了这个旧线程How to debug app when it's killed,但不知道我们是否有这样的功能在Flutter?

android.os.Debug.waitForDebugger();

我需要能够看到在应用程序中发生了什么记录器输出。

c3frrgcw

c3frrgcw1#

这不是真实的的调试,但如果是Android设备,您可以在处理FCM通知的代码中添加print语句,并在发布模式下从终端运行应用程序进行测试。这在iOS上不起作用,至少我无法使其起作用。
例如,增加以下内容:

FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);

@pragma('vm:entry-point')
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) {
  print('onBackgroundMessage');
}

在初始化FCM后的某个地方,使用此命令获取初始消息(当应用程序终止并导致应用程序启动时,用户单击的消息):

final initialMessage =
    await FirebaseMessaging.instance.getInitialMessage();
if (initialMessage != null) {
  print('initialMessage');
}

在此之后,将手机连接到计算机,从终端启动应用程序:

flutter run --release

现在您可以终止应用程序。请注意,终端中的会话仍将打开。
检查以下场景:
1.如果在应用程序终止时有通知,您将看到“onBackgroundMessage”。
1.如果用户在应用程序终止时单击消息,您将看到“initialMessage”。

相关问题