sharesdk 1.1.8

Document Language: English | 中文

ShareSDK For Flutter #

ShareSDK is a social sharing component that provides social functions for apps, like authorization and share, and has social statistical analysis management background. #

supported original ShareSDK minimum version:

introduce: http://www.mob.com/product/sharesdk

plugin homepage: https://pub.dartlang.org/packages/sharesdk

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

Getting Started #

Refer to the official document

If you need to customize the platforms:

iOS #

You need to editor sharesdk.podspec , please refer to official website document for supported platforms.

#
# 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

Then you need to configure Appkey and AppSecret in info.plist according to the official document, as well as the whitelist and urlScheme of each platform.

Android #

You need to edit build.gradle, mobsdk.gradle file again to select the platform you need to use, For specific supported platforms, please refer to official website technical documentation To meet the requirements of the example project, you need to configure at least the following platforms:

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
                        }
                    }
                }
}

0.0.1 #

  • Add iOS bridge.

1.0.0 #

  • Add android bridge
  • Modify ReadMe.md

1.0.5 #

  • Update the document

1.0.6 #

  • Update registration instructions

1.0.7 #

  • Update interfaces

1.0.8 #

  • Add sina link card share function

1.0.9 #

  • Update docs and interfaces

1.1.0 #

  • Repair onekeyshare bug
  • Added access to user information interface

1.1.1 #

  • Get user information interface new return token field

1.1.2 #

  • iOS:Fixed an invalid API for getUserInfo on iOS
  • Android: Return personal information to add a new database field

1.1.3 #

  • iOS:Added access interface to judge whether the client exists or not
  • Android:fix bug

1.1.4 #

  • Remake new plugin for iOS Swift project support. We strongly recommended you use the new sharesdk_plugin . Thank you !

1.1.7 #

  • update for remake.

1.1.8 #

  • update README

example/README.md

sharesdk_example #

supported original ShareSDK minimum version:

Document Language: English | 中文

  • import library

      import 'package:sharesdk/sharesdk.dart';
    
  • registry platforms(iOS)

        @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();
        }
    
    
  • share to facebook

      SSDKMap params = SSDKMap()..setGeneral("text", 
      ["https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1541565611543&di=4615c8072e155090a2b833059f19ed5b&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201501%2F06%2F20150106003502_Ajcte.jpeg"], 
      null, "title", SSDKContentTypes.auto);
    
      ShareSDK.share(ShareSDKPlatforms.facebook, params, (SSDKResponseState state, Map userdata, Map contentEntity, SSDKError error){
        showAlert(state, error.rawData, context);
      });
    
  • auth

      ShareSDK.auth(ShareSDKPlatforms.facebook, null, (SSDKResponseState state, Map user, SSDKError error){
        showAlert(state, user != null ? user:error.rawData, context);
      });
    
  • show platforms menu

      SSDKMap params = SSDKMap()..setGeneral("text", 
      ["https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1541565611543&di=4615c8072e155090a2b833059f19ed5b&imgtype=0&src=http%3A%2F%2Fb-ssl.duitang.com%2Fuploads%2Fitem%2F201501%2F06%2F20150106003502_Ajcte.jpeg"], 
      null, "title", SSDKContentTypes.auto);
      ShareSDK.showMenu(null, params, (SSDKResponseState state, ShareSDKPlatform platform, Map userData, Map contentEntity, SSDKError error){
    
        showAlert(state, error.rawData, context);
      });   
    
  • Please refer to sharesdk_interface.dart for other interfaces

Use this package as a library

1. Depend on it

Add this to your package's pubspec.yaml file:


dependencies:
  sharesdk: ^1.1.8

2. Install it

You can install packages from the command line:

with Flutter:


$ flutter pub get

Alternatively, your editor might support flutter pub get. Check the docs for your editor to learn more.

3. Import it

Now in your Dart code, you can use:


import 'package:sharesdk/sharesdk.dart';
  
Popularity:
Describes how popular the package is relative to other packages. [more]
75
Health:
Code health derived from static analysis. [more]
99
Maintenance:
Reflects how tidy and up-to-date the package is. [more]
80
Overall:
Weighted score of the above. [more]
83
Learn more about scoring.

We analyzed this package on Aug 21, 2019, and provided a score, details, and suggestions below. Analysis was completed with status completed using:

  • Dart: 2.4.0
  • pana: 0.12.19
  • Flutter: 1.7.8+hotfix.4

Platforms

Detected platforms: Flutter

References Flutter, and has no conflicting libraries.

Health suggestions

Fix lib/sharesdk_interface.dart. (-1 points)

Analysis of lib/sharesdk_interface.dart reported 2 hints:

line 73 col 10: This function has a return type of 'Future', but doesn't end with a return statement.

line 87 col 10: This function has a return type of 'Future', but doesn't end with a return statement.

Format lib/sharesdk_defines.dart.

Run flutter format to format lib/sharesdk_defines.dart.

Maintenance issues and suggestions

Homepage URL doesn't exist. (-20 points)

At the time of the analysis the homepage field https://www.mob.com/product/sharesdk was unreachable.

Dependencies

Package Constraint Resolved Available
Direct dependencies
Dart SDK >=2.0.0-dev.68.0 <3.0.0
flutter 0.0.0
Transitive dependencies
collection 1.14.11 1.14.12
meta 1.1.6 1.1.7
sky_engine 0.0.99
typed_data 1.1.6
vector_math 2.0.8