从 Flutter 和 Web 在 LinkedIn 上共享链接会产生不同的结果

问题描述 投票:0回答:1

我正在尝试从我的 Flutter 应用程序在 LinkedIn 上分享网页链接,我为此创建了以下功能:

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 上得到的结果在网络和移动设备上有所不同……即从网络和移动设备共享时,它共享链接的相同字符串值,但在 LinkedIn 上看起来不同,如下所示:

蓝色文本是从移动设备共享的结果,第二个是从网络共享的相同链接,但看起来不同。

链接值是相同的,尽管为什么它在 LinkedIn 上看起来不同。

请指导。

请注意,

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

flutter linkedin-api share url-launcher
1个回答
0
投票

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

当您使用 URL 打开 LinkedIn 共享页面时,LinkedIn 的网站将处理实际的共享过程。作为帖子或直接消息共享的选项由 LinkedIn 的 Web 界面控制,因此,在使用移动应用程序时它们可能不可用。

以下是使用 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'),
          ),
        ),
      ),
    );
     }
    }
© www.soinside.com 2019 - 2024. All rights reserved.