帮助与文档

> >

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

原生SDK支持的最低版本:

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

插件主页: https://pub.dartlang.org/packages/sharesdk

Demo例子:https://github.com/MobClub/ShareSDK-For-Flutter

开始集成

参考 Flutter官方插件集成文档

  • 在pubspec.yaml文件中加入下面依赖
dependencies:
  sharesdk:
  • 然后执行:flutter packages get 导入package
  • 在你的dart工程文件中,导入下面头文件,开始使用
import 'package:sharesdk/sharesdk.dart';

自定义需要导入的分享平台:

  • 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

添加初始化

 
 @override
    void initState() {
      // TODO: implement initState
      ShareSDKRegister register = ShareSDKRegister();

      register.setupWechat(
          "wx617c77c82218ea2c", "c7253e5289986cf4c4c74d1ccc185fb1");
      register.setupSinaWeibo("568898243", "38a4f8204cc784f81f9f0daaf31e02e3",
          "http://www.sharesdk.cn");
      register.setupQQ("100371282", "aed9b0303e3ed1e27bae87c33761161d");
      register.setupFacebook(
          "1412473428822331", "a42f4f3f867dc947b9ed6020c2e93558", "shareSDK");
      register.setupTwitter("viOnkeLpHBKs6KXV7MPpeGyzE",
          "NJEglQUy2rqZ9Io9FcAU9p17omFqbORknUpRrCDOK46aAbIiey", "http://mob.com");

      //注册
      ShareSDK.regist(register);

      super.initState();
    }
 

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

  • AndroidManifest中需要加入配置
    • tools:replace="android:name"

      将其加到application中,避免mobsdk与flutter的application冲突;

  •  mobsdk.gradle
    • 如下所示,devInfo内部,需要的平台可以自己添加,不需要的可以删除其中的配置即可;具体支持的平台可以参阅 官网技术文档
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
                }
    		}
    	}
    }

 

接口方法说明

接口说明:

auth 授权
ShowMenu 弹出九宫格菜单分享
openMiniProgram 打开微信小程序
shareMiniProgram 分享微信小程序
shareSinaLinkCard 分享新浪微博linkcard效果
shareSinaCustom 新浪单独分享
shareTwitterCustom 推特单独分享
shareFacebookCustom Facebook单独分享
shareQQCustom QQ单独分享
setGeneral 单独分享(可以设置单独某个平台)

 

参数说明:

1.setGeneral内的方法顺序及说明

 

title 标题(String)
text 文本(String)
images 图片数组ios使用(dynamic)
imageUrlAndroid url图片地址(String)
imagePathAndroid 本地图片路径(String)
url url地址(String)
titleUrlAndroid 标题url地址(String)
musicUrlAndroid 音乐url地址(String)
videoUrlAndroid 视频url地址(String)
SSDKContentType contentType 分享类型

0:auto(自动)

1:text(文本)

2:image(图像)

3:webpage(网页)

4:app(APP)

5:audio(音频)

6:video(视频)

7:file(文件)

10:miniProgram(小程序)

 

调用九宫格分享:

      SSDKMap params2 = SSDKMap()
        ..setGeneral(
            "title",
            "text",
            [""],
            "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
            null,
            "http://www.baidu.com",
            "http://www.mob.com",
            null,
            null,
            SSDKContentTypes.webpage,
           );
      ShareSDK.showMenu(
          null, params2, (SSDKResponseState state, ShareSDKPlatform platform,
          Map userData,Map contentDntity, SSDKError error) {
        showAlert(state, error.rawData, context);
      });

单独分享第三方平台:

如下所示,替换share方法内ShareSDKPlatforms.wechatSession第三方平台名称,即可单独分享不同的平台;具体第三方平台名称可以参考此文档;

      //单独公共分享
      SSDKMap params = SSDKMap()
        ..setGeneral(
          "title",
          "text",
          [""],
          "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
          null,
          "http://www.baidu.com",
          "http://www.mob.com",
          null,
          null,
          SSDKContentTypes.webpage,
        );
          ShareSDK.share(
          ShareSDKPlatforms.wechatSession, params, (SSDKResponseState state, Map userdata,
          Map contentEntity, SSDKError error) {
        showAlert(state, error.rawData, context);
      });

2.单独分享QQ:

不需要的参数传null即可

setQQ

title 标题(String)
text 文本(String)
url url地址(String)
audio 音频(String)
video 视频(String)
musicUrlAndroid 音乐url地址(String)
videoUrlAndroid 视频url地址(String)
thumbImage 缩略图(String)
images 图片数组Ios使用
imageUrlAndroid url图片地址(String)
imagePathAndroid 本地图片路径(String)
titleUrlAndroid 标题url地址(String)
SSDKContentType contentType 分享类型

0:auto(自动)

1:text(文本)

2:image(图像)

3:webpage(网页)

4:app(APP)

5:audio(音频)

6:video(视频)

7:file(文件)

10:miniProgram(小程序)

ShareSDKPlatform subPlatform 分享平台

 

      SSDKMap params = SSDKMap()
        ..setQQ(
            "title",
            "text",
            null,
            null,
            null,
            null,
            null,
            null,
            null,
            "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
            null,
            "http://www.mob.com",
            SSDKContentTypes.image,
            ShareSDKPlatforms.qq);
      ShareSDK.share(
          ShareSDKPlatforms.qq, params, (SSDKResponseState state, Map userdata,
          Map contentEntity, SSDKError error) {
        showAlert(state, error.rawData, context);
      });

 

3.单独分享微博

setSina

text 文本(String)
title 标题(String)
images 图片数组Ios使用
url 链接(String)
latitude 纬度(double)
longitude 维度(double)
objectId 父类型ID(String)
image_url 图片链接地址(String)
image_path 图片路径地址(String)
SSDKContentType type 分享类型

0:auto(自动)

1:text(文本)

2:image(图像)

3:webpage(网页)

4:app(APP)

5:audio(音频)

6:video(视频)

7:file(文件)

10:miniProgram(小程序)


SSDKMap params = SSDKMap()
  ..setSina(
      "text",
      "title",
      null,
      null,
      null,
      12456,
      654132,
      null,
      false,
      "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
      null,
      SSDKContentTypes.webpage,
      );
ShareSDK.share(
    ShareSDKPlatforms.sina, params, (SSDKResponseState state, Map userdata,
    Map contentEntity, SSDKError error) {
  showAlert(state, error.rawData, context);
});

 

4.setSinaLinkCard

linkcard类型如下参数,都不能为空

text 文本(String)
title 标题(String)
url 链接(String)
sina_summary 分享综括(String)
image_url 图片链接地址(String)
imageX 图片宽(String)
imageY 图片高(String)

 

      SSDKMap params = SSDKMap()
        ..setSinaLinkCard(
          "text",
          "title",
          "http://www.mob.com",
          "分享概况描述",
          "http://img1.2345.com/duoteimg/qqTxImg/2012/04/09/13339485237265.jpg",
          "120",
          "120",
        );
      ShareSDK.share(
          ShareSDKPlatforms.sina, params, (SSDKResponseState state, Map userdata,
          Map contentEntity, SSDKError error) {
        showAlert(state, error.rawData, context);
      });

 

5.单独分享推特

text 文本(String)
Images 图片数组
video 视频(String)
latitude 分享综括(double)
longitude 图片链接地址(double)
SSDKContentType type 分享类型

 

6.单独分享facebook

text 文本(String)
Images 图片数组
url 链接地址(String)
urlTitle 标题链接地址(String)
urlName 名称链接地址(String)
attachementUrl 附加链接地址(String)
hasTag 标签(String)
quote 引用(String)
SSDKContentType type 分享类型

 

7.分享小程序参数

setWeChatMiniProgram

title 标题(String)
desc 描述(String)
webUrl web地址(String)
path 小程序页面路径(String)
thumbImage 缩略图(String)
hdThumbImage 高清缩略图(String)
imageUrlAndroid 图片Url地址(String)
userName 小程序原始ID(String)
withShareTicket 分享标签(bool)
miniProgramType 小程序类型(int)
ShareSDKPlatform subPlatform 分享平台

 

8.分享到微信

setWechat

text 文本(String)
title 标题(String)
thumbImage 缩略图(String)
images 图片数组ios使用
musicFileURL 音乐文件url地址(String)
extInfo 附加信息(String)
fileData 文件流(String)
emoticonData 表情流(String)
fileExtension 文件扩展(String)
sourceFileData 源文件流(String)
SSDKContentType contentType 分享类型
ShareSDKPlatform subPlatform 分享平台

 

相关文档