Share Plus 不适用于 TestFlight ios 应用程序 flutter

问题描述 投票:0回答:3

我正在使用 share_plus 4.0.10 来共享一串简单的代码,它可以在 Android 模拟器中运行。然而,在将应用程序发布到 testflight 进行 Beta 测试后,共享按钮似乎不起作用。它只将空投显示为共享选项,按空投不会执行任何操作。代码非常简单。 按下时:() { Share.share('id',主题:'...')}

flutter
3个回答
2
投票

share_plus 要求 iPad 用户提供 sharePositionOrigin 参数。

没有它,share_plus 将无法在 iPad 上运行,并可能导致崩溃或让 UI 无响应。

为了避免该问题,请提供 sharePositionOrigin。

For example:

    
    // Use Builder to get the widget context
Builder(
  builder: (BuildContext context) {
    return ElevatedButton(
      onPressed: () => _onShare(context),
          child: const Text('Share'),
     );
  },
),

// _onShare method:
final box = context.findRenderObject() as RenderBox?;

await Share.share(
  text,
  subject: subject,
  sharePositionOrigin: box!.localToGlobal(Offset.zero) & box.size,
);

请参阅示例中的 main.dart 以获取完整示例。


1
投票

不太明白 sharePositionOrigin 在 Ipad 上是如何工作的,但我是这样做的:

await Share.share(
 user.name,
 sharePositionOrigin: Rect.fromPoints(
    const Offset(2, 2), const Offset(3, 3)));

这将弹出左上角的共享对话框。仍然需要解决这个问题,但这不是我的应用程序的核心问题,所以稍后再讨论。希望这会有所帮助。


0
投票

sharePositionOrigin:可以工作,但它需要一个 Rect(), 我使用了 Rect.fromCenter(),它对我有用,因为共享弹出式抽屉在 iPad 上对我不起作用,您可以尝试以下方法:

          Rect origin = Rect.fromCenter(center: Offset(512, 854), width: MediaQuery.of(context).size.width, height: MediaQuery.of(context).size.width);
         
          Share.share(
            "Hey,I just found something amazing. Please take a look\n${deepLink.toString()}",sharePositionOrigin: origin,
          );

希望这有帮助;-)

© www.soinside.com 2019 - 2024. All rights reserved.