8

在我的应用程序中,我存储了 Facebook 网址。我想在 Facebook 应用程序而不是浏览器中打开它们。我尝试使用flutter_url_launcher 包,但它在默认浏览器中打开链接......我想要的是直接打开链接到facebook 应用程序。谁能建议任何解决方案或软件包来帮助我摆脱这种情况?

4

3 回答 3

10

我还使用了@ruelluna 提到的链接中的解决方案。

根据当前版本,以下代码对我有用:

String fbProtocolUrl;
if (Platform.isIOS) {
  fbProtocolUrl = 'fb://profile/page_id';
} else {
  fbProtocolUrl = 'fb://page/page_id';
}

String fallbackUrl = 'https://www.facebook.com/page_name';

try {
  bool launched = await launch(fbProtocolUrl, forceSafariVC: false);

  if (!launched) {
    await launch(fallbackUrl, forceSafariVC: false);
  }
} catch (e) {
  await launch(fallbackUrl, forceSafariVC: false);
}

另外,确保 Info.plist 文件包含以下内容:

 <array> 
        <dict>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>fb[your_page_id]</string>
            </array>
        </dict>
    </array>

您可以从以下网址获取 your_page_id:https ://findmyfbid.com/

于 2020-03-03T09:13:09.800 回答
1

我的工作职能:

 void launchUrl2() async{
   var url = 'fb://facewebmodal/f?href=https://www.facebook.com/al.mamun.me12';
   if (await canLaunch(url)) {
     await launch( url, universalLinksOnly: true, );
   } else { throw 'There was a problem to open the url: $url'; }

 }
于 2021-12-03T18:45:07.463 回答
-1

您可以将其打开为网络

final url =
      "web://$**Your_Profile_Page**";
  if (await UrlLauncher.canLaunch(url)) {
    await UrlLauncher.launch(url,forceSafariVC: false);
  } else {
    throw 'Could not launch $url';
  }
于 2020-02-06T12:17:27.980 回答