flutter sharesdk實現(xiàn)跨平臺分享

我的項目

https://github.com/zhaochengxiang/flutter_lychee

flutter端

1.依賴sharesdk炫惩。

https://pub.dartlang.org/packages/sharesdk中下載sharesdk1.0.8demo悯辙,并將其放入我們的項目中本地引用脚囊。這里我將其放入plugins目錄下犀变。
添加下列代碼到pubspec.yaml進行本地引用:

dependencies:
  sharesdk: 
    path: plugins/sharesdk-1.0.8

2.安裝。

在flutter 中使用下列命令來安裝:

$ flutter packages get

3.使用它。

現(xiàn)在你可以在Dart代碼中使用sharesdk。
下面我們在main.dart中來實現(xiàn)微信分享功能:

import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:sharesdk/sharesdk.dart';

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

class ShareApp extends StatefulWidget {
  @override
  State<ShareApp> createState() {
    return new _ShareAppState();
  }
}

class _ShareAppState extends State<ShareApp> {

  //初始化sharasdk 
  //這里只添加微信分享功能來進行測試
  //請先在微信開放平臺中申請微信分享權(quán)限 并使用生成的AppID和AppSecret办绝。
  initShareSDK() {
    ShareSDKRegister register = ShareSDKRegister();
    register.setupWechat(
          "wxcb24d644e340e9cc", "34a7656f86280f75e16cd9094a8a1f54");
    ShareSDK.regist(register);
  }

  @override
  void initState() {
    initShareSDK();
    super.initState();
  }

  void showAlert(SSDKResponseState state, Map content, BuildContext context) {
    String title = "失敗";
    switch (state) {
      case SSDKResponseState.Success:
        title = "成功";
        break;
      case SSDKResponseState.Fail:
        title = "失敗";
        break;
      case SSDKResponseState.Cancel:
        title = "取消";
        break;
      default:
        title = state.toString();
        break;
    }
    showDialog(
      context: context,
      builder: (BuildContext context) =>
        CupertinoAlertDialog(
            title: new Text(title),
            content: new Text(content != null ? content.toString() : ""),
            actions: <Widget>[
              new FlatButton(
                child: new Text("OK"),
                onPressed: () {
                  Navigator.of(context).pop();
                },
              )
            ]
        )
      );
  }

  userWeChatShare(BuildContext context) {
    SSDKMap params = SSDKMap()
                ..setGeneral(
                    "title",
                    "text",
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    null,
                    SSDKContentTypes.text);

    ShareSDK.share(ShareSDKPlatforms.wechatSession, params, (SSDKResponseState state, Map userdata, Map contentEntity, SSDKError error){
      showAlert(state, error.rawData, context);
    });
  }

  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      theme: new ThemeData(primaryColor: Colors.white),
      home: new Center(
        child:RaisedButton(
          onPressed:(){userWeChatShare(context);},
          child:Text("微信分享"),
        )
      )
    );
  }
}
android端

1.重新mobsdk.gradle文件來選擇你需要使用的平臺,我們這里只使用了微信。

apply plugin: 'com.mob.sdk'

MobSDK {
    appKey "2a6869394af80"
    appSecret "796421d6838fe1ecbef3b419d2c2bcb0"

    ShareSDK {
        //平臺配置信息
        devInfo {

            Wechat {
                appId "wxcb24d644e340e9cc"
                appSecret "34a7656f86280f75e16cd9094a8a1f54"
            }
        }
    }
}

2.在Manifest清單文件中配置:tools:replace="android:name"

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的包名">
<application
   android:name = ".MyApplication"
   tools:replace="android:name">

3.編譯過程中報錯如下:


報錯.png

屏蔽掉報錯的內(nèi)容即可!如果需要使用QQ姚淆,需把相應(yīng)的代碼還原!

注意:如果跳轉(zhuǎn)不到微信孕蝉,請注意包名以及keystore是否與微信開放平臺中的注冊信息一致。

iOS端

1.自定義需要導(dǎo)入的分享平臺.
目前我們只加入了微信分享功能腌逢,所以需要重新編輯 sharesdk.podspec 文件設(shè)置 dependency降淮。

#
# 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      = <<-DESC
ShareSDK is the most comprehensive Social SDK in the world,which share easily with 40+ platforms.
                       DESC
  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

2.在項目工程的Info.plist 中如圖增加 MOBAppKey 和 MOBAppSecret 兩個字段。


info.png

3.添加微信url scheme搏讶。


scheme.png

4.配置白名單佳鳖。


白名單.png

效果圖:


效果圖1.jpeg

效果圖2.jpeg

參考文獻:
https://pub.dartlang.org/packages/sharesdk
https://pub.dartlang.org/documentation/sharesdk/latest/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市媒惕,隨后出現(xiàn)的幾起案子系吩,更是在濱河造成了極大的恐慌,老刑警劉巖妒蔚,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件淑玫,死亡現(xiàn)場離奇詭異,居然都是意外死亡面睛,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門尊搬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來叁鉴,“玉大人,你說我怎么就攤上這事佛寿』夏梗” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵冀泻,是天一觀的道長常侣。 經(jīng)常有香客問我,道長弹渔,這世上最難降的妖魔是什么胳施? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮肢专,結(jié)果婚禮上舞肆,老公的妹妹穿的比我還像新娘焦辅。我一直安慰自己,他們只是感情好椿胯,可當(dāng)我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布筷登。 她就那樣靜靜地躺著,像睡著了一般哩盲。 火紅的嫁衣襯著肌膚如雪前方。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天廉油,我揣著相機與錄音惠险,去河邊找鬼。 笑死娱两,一個胖子當(dāng)著我的面吹牛莺匠,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播十兢,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼趣竣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了旱物?” 一聲冷哼從身側(cè)響起遥缕,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎宵呛,沒想到半個月后单匣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡宝穗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年户秤,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逮矛。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡鸡号,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出须鼎,到底是詐尸還是另有隱情鲸伴,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布晋控,位于F島的核電站汞窗,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏赡译。R本人自食惡果不足惜仲吏,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蜘矢,春花似錦狂男、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至舞吭,卻和暖如春泡垃,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羡鸥。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工蔑穴, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人惧浴。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓存和,卻偏偏與公主長得像,于是被迫代替她去往敵國和親衷旅。 傳聞我的和親對象是個殘疾皇子捐腿,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,792評論 2 345