如何在 Flutter/Dart 中处理应用程序卸载?

Posted

技术标签:

【中文标题】如何在 Flutter/Dart 中处理应用程序卸载?【英文标题】:How to handle app uninstallation in Flutter/Dart? 【发布时间】:2021-03-02 22:05:27 【问题描述】:

谁能告诉我是否有可能在 Flutter 或更一般的移动开发中处理用户卸载应用程序以便我们可以执行某些操作?我知道我们可以很容易地检测到应用程序何时切换到后台,但我不知道是否真的可以检测到卸载。

【问题讨论】:

【参考方案1】:

对于 ios,您需要一个 APNs(Apple Push Notification 服务),这种方式表示您的令牌无效,因此,这意味着设备已经没有应用程序

签出:How To Track App Uninstall Effectively

【讨论】:

这是一个非常好的方法,谢谢!当用户卸载应用程序时,我需要使用它来删除数据库中的 Firebase Cloud Messaging 设备 ID。【参考方案2】:

@Nuqo 是对的。没有快速的方法来处理应用程序的卸载。但是你可以设计一个通知系统,定期推送通知。 Firebase 将使用“未注册”响应错误消息。这意味着用户已卸载您的应用。

阅读更多来自official document。

【讨论】:

这仅适用于 android。对于IOS,您将不得不采取不同的方法clevertap.com/blog/track-app-uninstalls-effectively【参考方案3】:

您可以在应用程序处于后台时进行操作。位置跟踪,向任何服务发送请求。你可以做你在一般的 android 和 ios 应用程序中可以做的事情。但有一些缺失的部分。您可能需要使用软件包。一些付费的。

   @override
   void didChangeAppLifecycleState(AppLifecycleState state) async 
      if (state == AppLifecycleState.resumed) 
         print("user came back to application");
           else if (state == AppLifecycleState.inactive) 
          print("user within the application");
         else if (state == AppLifecycleState.paused) 
        print("user threw into the background");
       
  

【讨论】:

问题是:我们如何检测应用程序的卸载? api.flutter.dev/flutter/dart-ui/AppLifecycleState-class.html 您可以使用 applifecyclestate 枚举查看它。

以上是关于如何在 Flutter/Dart 中处理应用程序卸载?的主要内容,如果未能解决你的问题,请参考以下文章

如何在视频/图像上添加图像或文本(水印) - Flutter/Dart

如何获取音频文件的长度而不在 Flutter/Dart 中播放

Flutter/Dart 中的 TDD。如何减少启动时间

如何在 Flutter Dart 中迭代 JSON Map 并检索键值结果?

如何使用 if 语句在“flutter / dart”中发送 https 发布请求

如何从 Flutter(Dart) 中的另一个类调用方法?