我试着在LinkedIn上分享我的Ffltter应用程序上的一个网页链接,为此我创建了以下函数:

void _shareOnLinkedIn() async {
final String linkedInShareUrl =
    "https://stgappnavigator.parkstreet.com/marketplace/details/${_catalogStore.summaryInfo?.data?[widget.productIndex].id}";
final String encodedUrl = Uri.encodeFull(linkedInShareUrl);
final String linkedInUrl = Const.linkedInShareUrl + "=$encodedUrl";
if (await canLaunchUrl(Uri.parse(linkedInUrl))) {
  await launchUrl(Uri.parse(linkedInUrl));
} else {
  ToastUtil.show(
      ToastDecorator(isSuccess: false, msg: "something_went_wrong".tr()),
      context,
      gravity: ToastGravity.bottom);
    }
}

现在,它的工作很好,但结果,我得到的是不同的LinkedIn的情况下,网络和移动.即从Web和移动共享时,它共享链接的相同字符串值,但它在LinkedIn上看起来不同,如下所示:

enter image description here

蓝色文本是从手机上分享的结果,第二个是从网络上分享的相同链接,但看起来不同.

Link值是相同的,尽管为什么它在LinkedIn上看起来不同.

请给我带路.

请注意,linkedInShareUrl变量的值为: https://www.linkedin.com/sharing/share-offsite/?url

推荐答案

LinkedIn不提供直接的API访问来以编程方式发布内容,因此在LinkedIn上共享通常需要打开带有预先填充的消息的LinkedIn分享页面.不幸的是,截至我在2022年1月的上一次知识更新,LinkedIn API不支持通过移动应用程序直接分享或发布内容.

当你使用URL打开LinkedIn分享页面时,LinkedIn的网站会处理实际的分享过程.分享为帖子或直接消息的选项由LinkedIn的网络界面控制,因此,在使用移动应用程序时可能无法使用这些选项.

以下是用url_Launcher包打开LinkedIn分享页面的修改后的代码:

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

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Share to LinkedIn Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: () {
              // Define the content to share
              String content = 'Check out this awesome app! $websiteUrl';

              // Encode the content for the LinkedIn sharing URL
              String encodedContent = Uri.encodeComponent(content);

              // LinkedIn sharing URL
              String linkedInUrl = 'https://www.linkedin.com/shareArticle?mini=true&url=$encodedContent';

              // Open the LinkedIn sharing URL
              launch(linkedInUrl);
            },
            child: Text('Share to LinkedIn'),
          ),
        ),
      ),
    );
     }
    }

Flutter相关问答推荐

Flutter在创建时为提供者调用初始化函数

未处理异常:字符串类型不是值类型子类型的子类型'

在Flutter TextField中计算子字符串位置

框中的Flutter 适配图像

Flutter GestureDetector单击问题-堆叠外面的按钮不可点击

Flutter卡内容未在水平列表视图中居中

Flutter Xcode 15 错误(Xcode):DT_TOOLCHAIN_DIR 无法用于判断 LIBRARY_SEARCH_PATHS

如何将小部件代码移动到另一个文件以获得更好的可读性

无法应用插件com.chaquo.python

FutureProvider 不返回数据给 UI

升级到 Flutter 3.10 后,Flutter 键盘填充不起作用. Flutter 3.10 如何防止 BottomSheet 被键盘覆盖?

面对Flutter 中的行和列问题

如何将 chrome web 模拟器添加到 vs code

在 Flutter 中使用 HardwareKeyboard 时所有键都没有响应

Flutter 用户过滤器

type '_InternalLinkedHashMap' 不是使用 http 包的'String' 类型的子类型

在 Flutter 中,如何使用文本字段和方形图像进行行布局

小部件库捕获的 Flutter 异常

Flutter 广告导致延迟

"!" 是什么意思该运算符在使用如下方式时意味着dart ?