0

我试图在 Flutter 的公司页面上打开 Facebook 应用程序,但它一直在 Web 浏览器中打开它。

它只是一个简单的小部件,可以从列表中输出一行社交媒体图标:

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class SocialMediaLinks extends StatelessWidget {
  SocialMediaLinks({Key? key}) : super(key: key);

  final List<Map<dynamic, dynamic>> icons = [
    {
      'name': 'twitter',
      'launchUrl': 'twitter://PAGENAME',
      'backupUrl': 'https://twitter.com/PAGENAME',
    },
    {
      'name': 'facebook',
      'launchUrl': 'fb://page/PAGEID',
      'backupUrl': 'https://www.facebook.com/PAGENAME',
    },
    {
      'name': 'instagram',
      'launchUrl': 'instagram://PAGENAME',
      'backupUrl': 'https://www.instagram.com/PAGENAME',
    }
  ];

  @override
  Widget build(BuildContext context) {
    return Row(
      children: [
        for (Map i in icons)
          IconButton(
            onPressed: () async {
              await canLaunch(i['launchUrl'])
                  ? launch(
                      i['launchUrl'],
                      forceSafariVC: false,
                      forceWebView: false,
                    )
                  : launch(
                      i['backupUrl'],
                      forceSafariVC: false,
                      forceWebView: false,
                    );
            },
            splashRadius: 30.0,
            iconSize: 38.0,
            icon: Image.asset(
              "assets/images/icons/${i['name']}.png",
              color: Colors.white,
            ),
          ),
      ],
    );
  }
}

Twitter 和 Instagram 在他们的应用程序中工作和打开,但 Facebook 仍然只在网络浏览器中打开。我在 stackoverflow 上尝试了很多解决方案,但无济于事。我错过了什么吗?

谢谢。

4

0 回答 0