flutter打开facebook信使

xuo3flqw  于 2022-11-25  发布在  Flutter
关注(0)|答案(2)|浏览(158)

我试着打开Facebook的信使使用urllauncher如下。但我不能启动信使。
我可以打开facebook页面,youtube,甚至用urllaucher打电话。

OutlinedButton.icon(
                  onPressed: () async {
                    //_launchURL(about.messenger!,);
                    await canLaunch("https://m.me/myfacebookname")
                        ? await launch("https://m.me/myfacebookname", forceWebView: false)
                        : throw 'Could not launch ${"https://m.me/myfacebookname"}';
                  },
                  icon: const Icon(Icons.messenger_outline_sharp),
                  label: const AutoSizeText(""),
                  style: ButtonStyle(
                    shape: MaterialStateProperty.all(RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(30.0))),
                  ),
                ),
c0vxltue

c0vxltue1#

我需要在Minifest中添加查询选项卡。我想我不需要它,因为我可以打开Facebook。

<queries>
      <!-- If your app opens https URLs -->
      <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="https" />
      </intent>
      <!-- If your app makes calls -->
      <intent>
        <action android:name="android.intent.action.DIAL" />
        <data android:scheme="tel" />
      </intent>
      <!-- If your app emails -->
      <intent>
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="*/*" />
      </intent>
    </queries>
6pp0gazn

6pp0gazn2#

这是我如何打开Facebook信使从我的flutter应用程序。我创建了一个函数如下。

launchMessenger(){
 String facebookIdHere=myfacebookId;
 String url() {
  if (Platform.isAndroid) {
    String uri = 'fb-messenger://user/$facebookIdHere';
    return uri;
  } else if (Platform.isIOS) {
    // iOS
    String uri = 'https://m.me/$facebookIdHere';
    return uri;
  }
  else{
    return 'error';
  }
}

if (await canLaunchUrl(Uri.parse(url()))) {
  await launchUrl(Uri.parse(url()));
} else {
  throw 'Could not launch ${url()}';
}}

然后在按钮上调用函数。

FloatingActionButton(
onPressed:(){launchMessenger();})

希望能有所帮助。

相关问题