如何调试从已杀死/终止状态开始的Flutter应用程序,例如接收FCM消息?



我想测试当应用程序处于终止状态时收到的FCM消息。问题是Android Studio在我杀死应用程序后失去连接。我如何在启动时连接回Android Studio调试器?

我发现这个旧线程如何调试应用程序时,它's被杀,但不知道我们是否有这样的功能在扑动?

android.os.Debug.waitForDebugger();

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

我建议您使用ADB。只要在shell中输入这个命令,你就会收到你的应用程序的实时日志(即使它处于终止状态)。

adb logcat --pid=$(adb shell pidof -s your.package.name)

这不是真正的调试,但在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"

  2. 如果用户在应用程序终止时点击消息,你会看到&;initialmessage&;

相关内容

  • 没有找到相关文章

最新更新