Flutter社交分享插件sharesdk_plugin的使用

发布于 1周前 作者 sinazl 来自 Flutter

Flutter社交分享插件sharesdk_plugin的使用

简介

这是一个基于ShareSDK功能的扩展的Flutter插件。使用此插件能够帮助您在使用Flutter开发应用时,快速地实现社会化功能,例如第三方授权登录,获取用户信息以及社交平台的分享等功能。

原生SDK支持的最低版本:

  • Android - V3.4.0
  • iOS - V4.3.2

简介:

ShareSDK 是一个全球最全面的社会化SDK,通过它你可以轻松地与40多个平台进行分享。

插件主页:

https://pub.dartlang.org/packages/sharesdk_plugin

官网文档:

http://wiki.mob.com/快速集成/

Demo例子:

https://github.com/MobClub/ShareSDK-For-Flutter/sharesdk_plugin

开始集成

参考官方插件集成文档:

iOS

你需要重新编辑 sharesdk.podspec 文件设置 dependency,具体支持的平台可以参阅 pod search mob_sharesdk 或者参考官网文档。

#
# To learn more about a Podspec see http://guides.cocoapods.org/syntax/podspec.html
#
Pod::Spec.new do |s|
s.name             = 'sharesdk'
s.version          = '0.0.1'
s.summary          = 'flutter plugin for sharesdk.'
s.description      = 'ShareSDK is the most comprehensive Social SDK in the world, which share easily with 40+ platforms.'
s.homepage         = 'http://www.mob.com'
s.license          = { :file => '../LICENSE' }
s.author           = { 'Mob' => 'mobproducts@163.com' }
s.source           = { :path => '.' }
s.source_files = 'Classes/**/*'
s.public_header_files = 'Classes/**/*.h'
s.dependency 'Flutter'
s.dependency 'mob_sharesdk'
#  s.dependency 'mob_sharesdk/ShareSDKUI'
#  s.dependency 'mob_sharesdk/ShareSDKPlatforms/QQ'
#  s.dependency 'mob_sharesdk/ShareSDKPlatforms/SinaWeibo'
#  s.dependency 'mob_sharesdk/ShareSDKPlatforms/WeChat'
#  s.dependency 'mob_sharesdk/ShareSDKPlatforms/Facebook'
#  s.dependency 'mob_sharesdk/ShareSDKPlatforms/Twitter'

s.ios.deployment_target = '8.0'
end

然后你需要根据官方文档在Xcode工程的info.plist里面配置Appkey 和 AppSecret, 以及各平台的白名单和urlScheme。

Android

你需要重新编辑 build.gradle, mobsdk.gradle 文件来选择你需要使用的平台,具体支持的平台可以参阅官网技术文档。

build.gradle
buildscript {
    repositories {
                    google()
                    jcenter()
                    maven {
                    url "http://mvn.mob.com/android"
                    }
                 }

    dependencies {
                    classpath 'com.android.tools.build:gradle:3.1.2'
                    classpath 'com.mob.sdk:MobSDK:+'
                 }
}
mobsdk.gradle
MobSDK {
    appKey "moba6b6c6d6"
    appSecret "b89d2427a3bc7ad1aea1e1e8c1d36bf3"

        ShareSDK {

            // platform configuration information
            devInfo {
                        QQ {
                        id 7
                        sortId 7
                        appId "100371282"
                        appKey "aed9b0303e3ed1e27bae87c33761161d"
                        shareByAppClient true
                        bypassApproval false
                        enable true
                        }

                        SinaWeibo {
                        id 1
                        sortId 1
                        appKey "568898243"
                        appSecret "38a4f8204cc784f81f9f0daaf31e02e3"
                        callbackUri "http://www.sharesdk.cn"
                        shareByAppClient true
                        enable true
                        }

                        Wechat {
                        id 4
                        sortId 4
                        appId "wx4868b35061f87885"
                        appSecret "64020361b8ec4c99936c0e3999a9f249"
                        userName "gh_afb25ac019c9"
                        path "pages/index/index.html?id=1"
                        withShareTicket true
                        miniprogramType 0
                        bypassApproval false
                        enable true
                        }

                        Facebook {
                        id 8
                        sortId 8
                        appKey "1412473428822331"
                        appSecret "a42f4f3f867dc947b9ed6020c2e93558"
                        callbackUri "https://mob.com"
                        shareByAppClient true
                        enable true
                        }

                        Twitter {
                        id 9
                        sortId 9
                        appKey "viOnkeLpHBKs6KXV7MPpeGyzE"
                        appSecret "NJEglQUy2rqZ9Io9FcAU9p17omFqbORknUpRrCDOK46aAbIiey"
                        callbackUri "http://mob.com"
                        shareByAppClient true
                        enable true
                        }
                    }
                }
}

接口方法说明

接口详情:API接口调用

技术支持

如有问题请联系技术支持:

服务电话:   400-685-2216
QQ:        4006852216
节假日值班电话:
    iOS:185-1664-1951
Android: 185-1664-1950
电子邮箱:   support@mob.com
市场合作:   021-54623100

示例代码

example/lib/main.dart

import 'package:flutter/material.dart';
import 'package:sharesdk_plugin_example/home.dart';
import 'package:flutter/cupertino.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  [@override](/user/override)
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化状态
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomePage(),
    );
  }
}

更多关于Flutter社交分享插件sharesdk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter社交分享插件sharesdk_plugin的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个关于如何在Flutter项目中使用sharesdk_plugin进行社交分享的示例代码。请注意,这个示例假定你已经有一个Flutter项目,并且已经正确配置了sharesdk_plugin依赖。

首先,你需要在pubspec.yaml文件中添加sharesdk_plugin依赖:

dependencies:
  flutter:
    sdk: flutter
  sharesdk_plugin: ^最新版本号  # 请替换为实际的最新版本号

然后运行flutter pub get来安装依赖。

接下来,你需要在你的Flutter项目中配置sharesdk_plugin。由于Sharesdk通常需要一些平台特定的配置(如Android的AndroidManifest.xml和iOS的Info.plist),这里只展示Flutter端的代码,具体的平台配置请参考sharesdk_plugin的官方文档。

Flutter端代码示例

  1. 导入插件

在你的Dart文件中导入sharesdk_plugin

import 'package:sharesdk_plugin/sharesdk_plugin.dart';
  1. 初始化插件

在应用启动时初始化sharesdk_plugin。通常你可以在main.dartMyApp类的构造函数或者initState方法中进行初始化。

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  // 初始化Sharesdk插件
  await SharesdkPlugin.init(
    appId: "你的APP_ID", // 替换为你的实际APP_ID
    secret: "你的SECRET", // 替换为你的实际SECRET(如果有的话)
  );

  runApp(MyApp());
}
  1. 配置分享内容并分享

创建一个方法来配置并分享内容。例如,分享文本到微信:

void shareToWeChat() async {
  try {
    bool result = await SharesdkPlugin.share(
      platform: SharesdkPlatform.WECHAT_SESSION, // 分享到微信会话
      contentType: SharesdkContentType.TEXT,
      text: "这是一段分享的文本内容!",
      imageUrl: null, // 如果有图片,可以设置为图片的URL
      title: "分享标题",
      description: "分享描述",
      site: "你的网站名称",
      siteUrl: "你的网站URL",
    );

    if (result) {
      print("分享成功");
    } else {
      print("分享失败");
    }
  } catch (e) {
    print("分享时发生错误: $e");
  }
}
  1. 在UI中调用分享方法

你可以在你的UI组件中添加一个按钮来触发分享动作:

import 'package:flutter/material.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  
  await SharesdkPlugin.init(
    appId: "你的APP_ID",
    secret: "你的SECRET",
  );

  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Sharesdk Plugin Demo'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: shareToWeChat,
            child: Text('分享到微信'),
          ),
        ),
      ),
    );
  }
}

这个示例展示了如何在Flutter中使用sharesdk_plugin进行基本的文本分享。对于其他类型的分享(如图片、视频、网页链接等),你可以根据需要调整contentType和其他参数。

请确保你已经按照sharesdk_plugin的官方文档完成了所有必要的平台特定配置,否则分享功能可能无法正常工作。

回到顶部