当使用Flutter的共享插件中止平台的共享表时,是否有办法捕获?

问题描述

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

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

经检查,我发现插件'share' MethodChannel调用方法'plugins.Flutter.io/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...
});

解决方法

您已经正确地发现使用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