共享失败,请仅在颤抖的WhatsApp(API23)中重试

时间:2019-10-22 10:16:46

标签: flutter dart

我正在构建一个应用程序,其中添加了共享功能,并安装了native_share(https://pub.dev/packages/native_share#-readme-tab-)插件,并且在运行代码时将目标api从18更改为23在我的移动设备中存在的所有社交媒体应用程序中都可以正常运行,除了whatsapp。每当我尝试选择whatsapp时,它都会显示“共享失败,请重试”,然后返回屏幕。我只能找到本机android的解决方案,而不是扑朔迷离。下面是代码。

class ShareURL extends StatefulWidget {
  final String mediaUrl;

  ShareURL({
    this.mediaUrl,
  });
  @override
  _ShareURLState createState() => _ShareURLState(
    mediaUrl: this.mediaUrl,
  );
}

class _ShareURLState extends State<ShareURL> {
  final String mediaUrl;

  _ShareURLState({
    this.mediaUrl,
  });
  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: (){
        //print(mediaUrl);
        NativeShare.share({'title':'Plugin example app','url':mediaUrl});
      },
      child: videoControlAction(
          icon: AppIcons.reply, label: "Share", size: 27),
    );
  }
  }

1 个答案:

答案 0 :(得分:0)

您可以使用url_launcher并使用以下变量:

const phone = '+20123456789';
var whatsappUrl = "whatsapp://send?phone=$phone";

然后在onPressed函数中实现它:

onPressed: () async {
    if (await launcher.canLaunch(whatsappUrl)) {
        await launcher.launch(whatsappUrl);
    } else {
        _showDialog(
        context,
        title: 'Error',
        msg: 'Please make sure that you have whatsapp installed',
        );
    }
},