iOS 上的 Flutter“share_plus”sharePositionOrigin PlatformException

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

我正在使用“share_plus”Flutter 库通过 Firebase 动态链接共享文件。这是我当前使用的代码:

  ...............

  final dynamicLink =
      await FirebaseDynamicLinks.instance.buildShortLink(dynamicLinkParams);

  var description = 'Check this out on our app ${dynamicLink.shortUrl}';

  Share.shareXFiles([XFile(fileName)], text: description).then((value) async {
    setState(() {
      shareCount += 1;
    });

    SharedPreferences preferences = await SharedPreferences.getInstance();
    preferences.remove("sharedPostId");

    Navigator.pop(context);
  });

  .................

在 Android 上,共享底部工作表可以正常打开。但是,在 iOS 上,共享底部工作表无法打开,并且日志显示以下错误消息:

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(error, sharePositionOrigin: argument must be set, {{0, 0}, {0, 0}} must be non-zero and within coordinate space of source view: {{0, 0}, {414, 736}}, null, null)
#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:653)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:315)
<asynchronous suspension>
#2      MethodChannelShare.shareFilesWithResult (package:share_plus_platform_interface/method_channel/method_channel_share.dart:134)

任何帮助将不胜感激!

flutter share-plus
2个回答
2
投票

请参阅 pub.dev 上的 iPad 说明:参数

sharePositionOrigin
是必需的。


0
投票

如果您在 flutter 中使用 Share_Plus 插件:

我通过添加 sharePositionOrigin: Rect.fromLTWH(0, 0, shareUrl() 函数中的 screenWidth, screenHeight) 这是我的代码:

......................................................
   void shareUrl(String text, BuildContext context){
    try{
     Size size = MediaQuery.of(context).size;
     double screenWidth = size.width;
     double screenHeight = size.height;
       Share.share(text,
           sharePositionOrigin: Rect.fromLTWH(0, 0, screenWidth, 
             screenHeight));
    } catch (e) {
       Get.snackbar('Error', 'Failed to share: $e');
     }
 }
....................................................

我希望它有帮助。

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