搜索插件、代码仓与 APP 分类

插件详情v1.2.3

social_sharing_plus

一个用于将内容、图片和视频分享到 Facebook、Twitter、LinkedIn、WhatsApp、Reddit 和 Telegram 等社交媒体平台的 Flutter 插件。

AndroidiOS
近 30 天下载
9300
喜欢数
59
Pub 分数
150

安装插件

flutter pub add social_sharing_plus

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

一个 Flutter 插件,可实现无缝共享文本、图片和视频到 Facebook、Twitter、LinkedIn、WhatsApp、Reddit 和 Telegram 等主流社交媒体平台。专为 Android 和 iOS 设计,通过一致的 API 简化跨平台社交集成。该插件处理平台特定的分享意图,并提供对原生分享对话框的可靠访问。支持简单分享以及自定义消息和深度链接等高级配置。

适合场景

  • 分享应用内容到社交网络
  • 在用户生成内容中嵌入社交分享
  • 集成社区或反馈功能
  • 在应用内实现快速内容分发
  • 支持多平台社交推广

主要特点

  • 对 Android 和 iOS 的跨平台支持
  • 目标平台上的原生共享对话框
  • 支持文本、图片和视频
  • 轻松集成,设置简单
  • 处理平台特定的共享行为
  • 可扩展以支持未来的社交媒体添加

适合对象

  • 需要社交分享功能的应用
  • 内容驱动的应用程序
  • 用户参与工具
  • 面向全球受众的移动应用
  • 寻求轻量级共享解决方案的开发者

使用建议

  • 需要平台特定的配置(例如,Android 清单条目)
  • 仅限支持的平台和应用
  • 某些设备可能需要用户权限
  • 依赖外部应用程序已安装
  • 不支持内置的分享事件分析

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

social_sharing_plus is a Flutter plugin that allows you to share content, images and videos to various social media platforms like Facebook, Twitter, LinkedIn, WhatsApp, Reddit, and Telegram. This package provides a simple and unified interface for sharing across different apps, handling the nuances and differences of each platform.

🚀 Exciting News! You can now share multiple images and videos with text(optional)! 📸🎥

Table of contents

Setup

social_sharing_plus is supported on Android and iOS platforms. On the Android side, queries are made with the package names of the respective apps. This requires the addition of some Android-specific code.

Android (click to expand)

Add queries for app packages

You need to add the following queries to your app's AndroidManifest.xml file to ensure proper redirection to the respective social media apps:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.myapp">

    <queries>
        <!-- Query for Facebook -->
        <package android:name="com.facebook.katana" />
        <!-- Query for Twitter -->
        <package android:name="com.twitter.android" />
        <!-- Query for LinkedIn -->
        <package android:name="com.linkedin.android" />
        <!-- Query for Reddit -->
        <package android:name="com.reddit.frontpage" />
        <!-- Query for WhatsApp -->
        <package android:name="com.whatsapp" />
        <!-- Query for Telegram -->
        <package android:name="org.telegram.messenger" />
    </queries>

    <application>
         <!-- ... -->
    </application>
</manifest>

Media Sharing and Media Provider

This provides a specific file provider so that it can share files with other applications. To provide this functionality, you need to create an XML folder under the android>app>src>main>res folder and name it filepaths.xml. Then add the following code to the filepaths.xml file:

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <cache-path name="cache" path="." />
    <external-path name="external" path="." />
</paths>

This XML file specifies what types of files your file provider can provide. Then add a <provider> tag in your AndroidManifest.xml file like this:

<provider
    android:name="androidx.core.content.FileProvider"
    android:authorities="${applicationId}.fileprovider"
    android:exported="false"
    android:grantUriPermissions="true">
    <meta-data
        android:name="android.support.FILE_PROVIDER_PATHS"
        android:resource="@xml/filepaths" />
</provider>

This <provider> tag specifies the authorization of your file provider and what file paths it provides. The android:authorities attribute specifies the identity of your file provider, and the ${applicationId}.fileprovider value uses your application's credentials. This ensures the security of your application while allowing other applications to access files.

iOS (click to expand)

No special configuration is needed for iOS.


dependencies:
  social_sharing_plus: ^1.2.3
Usage
import 'package:social_sharing_plus/social_sharing_plus.dart';

static const SocialPlatform platform = SocialPlatform.facebook;
String? _mediaPath; // add image or video path
List<String> _mediaPaths = []; // add image or video paths
bool isMultipleShare = true;

isMultipleShare
    ? await SocialSharingPlus.shareToSocialMediaWithMultipleMedia(
        platform,
        media: _mediaPaths,
        content: content,
        isOpenBrowser: false,
        onAppNotInstalled: () {
          ScaffoldMessenger.of(context)
            ..hideCurrentSnackBar()
            ..showSnackBar(SnackBar(
              content: Text('${platform.name.capitalize} is not installed.'),
            ));
        },
      )
    : await SocialSharingPlus.shareToSocialMedia(
        platform,
        content,
        media: _mediaPath,
        isOpenBrowser: true,
      );

Properties

  • shareToSocialMedia:
Properties Required Default Description
socialPlatform true Platform you want to share on
content true Any text you want to share
media false The image or video you want to share
isOpenBrowser false true If the relevant application is not installed, it redirects to the link (browser) of the relevant application.
onAppNotInstalled false This method works if the application is not installed and the isOpenBrowser value is set to false. (For example: Showing a Snackbar like "The application is not installed on your device."...)
  • shareToSocialMediaWithMultipleMedia:
Properties Required Default Description
socialPlatform true Platform you want to share on
content false Any text you want to share
media true The image or video you want to share
isOpenBrowser false true If the relevant application is not installed, it redirects to the link (browser) of the relevant application.
onAppNotInstalled false This method works if the application is not installed and the isOpenBrowser value is set to false. (For example: Showing a Snackbar like "The application is not installed on your device."...)
Screenshots
Dart Version
  sdk: '>=2.17.0 <4.0.0'
Issues

Please file any issues, bugs, or feature requests as an issue on our GitHub page.

Contribute

If you would like to contribute to the plugin (e.g. by improving the documentation, solving a bug, or adding a cool new feature), please carefully review our contribution guide and send us your pull request.

Author

This social_sharing_plus plugin for Flutter is developed by Bedirhan Sağlam. You can contact me at <bedirhansaglam270@gmail.com>

License

MIT

所属分类

依赖

依赖清单 1 项

  • plugin_platform_interface^2.0.2

源码仓库

使用此插件的项目

暂无相关数据。