【问题标题】:Is there a way to capture when the platform's share sheet is aborted using Flutter's share plugin?使用 Flutter 的共享插件中止平台的共享表时,有没有办法捕获?
【发布时间】:2021-01-23 13:57:22
【问题描述】:

我正在使用 Flutter 的 share 插件来分享我的应用程序中的内容。

Share.share("A sample text that is shared")

经检查,我发现该插件在MethodChannel'plugins.flutter.io/share' 上调用了一个方法'share'。这会根据平台显示底部表。我想做的是捕获此共享表的关闭。可以通过以下方式关闭共享表:

  1. 点击工作表外的区域
  2. 在 Android 上按返回按钮
  3. 单击工作表中的选项之一,然后打开相应的应用程序

理想情况下,此“共享”的Future 将返回可用于决定用户是中止共享(情况 1 和 2)还是继续共享(情况 3)的信息。我正在尝试这样做以跟踪从我的应用共享内容的次数。

Share.share 返回一个Future<void>,我相信在平台通道上调用该方法后会解决该问题。

有没有一种方法可以在平台的共享表关闭时进行捕获,就像我们可以在弹出对话框等其他小部件时进行捕获一样?或者更具体地说,

有没有办法知道用户是否真的进行了分享?

这样的事情会更容易:

Share.share("A sample text that is shared").then((bool isAborted) {
 // Do something...
});

【问题讨论】:

    标签: android ios flutter flutter-plugin flutter-platform-channel


    【解决方案1】:

    您已经正确地发现使用share plugin这是不可能

    此外,这也不可能在平台级别上无论如何(请参阅an Android answer for reference)。


    此外,您的请求的答案是创建一个issue at flutter/flutter,因为这是由 Flutter 团队和GitHub issues are used to track such feature requests 提供的插件。在这种情况下,您需要确保在您的问题标题中包含[share]。请参阅flutter/plugins README for reference

    【讨论】:

    • 感谢您的回复。我提出了issue at flutter/flutter。同时,你对如何解决这个问题有什么建议吗(即使它是一个笨拙的黑客)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    • 2022-12-19
    • 2011-06-14
    • 2016-02-03
    • 2010-11-03
    相关资源
    最近更新 更多