React Native-ShareSDK

ShareSDK-iOS (v3.x) for React-Native

目錄

<a id="Download"></a>1、新建項(xiàng)目并下載 ShareSDK

  • 1、React-Native 項(xiàng)目環(huán)境搭建,不會(huì)的童鞋自行面壁哈: 網(wǎng)頁(yè)鏈接.

  • 2、ShareSDK iOS版本的 RN 插件是在ShareSDK iOS版本基礎(chǔ)上對(duì)原生模塊的接口做導(dǎo)出供給JS端使用,是依賴(lài)ShareSDK for iOS的。所以下載本示例DEMO就包含了以下2部分,下載下來(lái)的文件目錄截圖如下:

    (1)ShareSDK iOS 版本的下載:網(wǎng)頁(yè)鏈接

    (2)React-Native 插件的下載: :網(wǎng)頁(yè)鏈接
    (包含demo,需要的是ShareSDKManager.h / ShareSDKManager.m / ShareSDK.js)

    初始化
  • 將以上文件ShareSDKManager.h / ShareSDKManager.m / ShareSDK 拖到新建的 RN 項(xiàng)目中的 ios 目錄下,將 ShareSDK.js 拖入 RN 項(xiàng)目中。

  • 注意:Sources(導(dǎo)入文件) 就是集成所需要的所有文件

<a id="init"></a> 2、初始化ShareSDK并設(shè)置社交平臺(tái)

iOS 部分

  • 1、下載的 ShareSDK 文件夾拖拽進(jìn)項(xiàng)目
img

注意:請(qǐng)務(wù)必在上述步驟中選擇“Create groups for any added folders”單選按鈕組。如果你選擇“Create folder references for any added folders”,一個(gè)藍(lán)色的文件夾引用將被添加到項(xiàng)目并且將無(wú)法找到它的資源。

  • 2、添加必須的依賴(lài)庫(kù)

必須添加的依賴(lài)庫(kù)如下 ( Xcode 7 下 .dylib庫(kù)后綴名更改為.tbd ):

libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework

以下依賴(lài)庫(kù)根據(jù)社交平臺(tái)添加:

新浪微博SDK依賴(lài)庫(kù)

ImageIO.framework
libsqlite3.dylib
微信SDK依賴(lài)庫(kù) 

libsqlite3.dylib
QQ好友和QQ空間SDK依賴(lài)庫(kù) 

libsqlite3.dylib
短信和郵件需要依賴(lài)庫(kù) 

MessageUI.framework
Google+SDK依賴(lài)庫(kù) 

CoreMotion.framework
CoreLocation.framework
MediaPlayer.framework
AssetsLibrary.framework

添加依賴(lài)庫(kù)的方法如下:

img
  • 3、各個(gè)社交平臺(tái)需要的配置(url schemes 等)可以參考文檔中的可選配置項(xiàng):網(wǎng)頁(yè)鏈接

  • 附錄:iOS 9 配置文檔請(qǐng)戳 -》 網(wǎng)頁(yè)鏈接

  • 4、選擇需要的平臺(tái)SDK

打開(kāi) ShareSDKManager.m ,按需注釋掉已導(dǎo)入的原生SDK庫(kù) (不需要的平臺(tái)SDK也可以做刪除處理)
#define IMPORT_SINA_WEIBO_LIB               //導(dǎo)入新浪微博庫(kù),如果不需要新浪微博客戶(hù)端分享可以注釋此行
#define IMPORT_QZONE_QQ_LIB                 //導(dǎo)入騰訊開(kāi)發(fā)平臺(tái)庫(kù),如果不需要QQ空間分享、SSO或者QQ好友分享可以注釋此行
#define IMPORT_RENREN_LIB                   //導(dǎo)入人人庫(kù),如果不需要人人SSO,可以注釋此行
#define IMPORT_GOOGLE_PLUS_LIB              //導(dǎo)入Google+庫(kù),如果不需要Google+分享可以注釋此行
#define IMPORT_WECHAT_LIB                   //導(dǎo)入微信庫(kù),如果不需要微信分享可以注釋此行
//#define IMPORT_ALIPAY_LIB                   //導(dǎo)入支付寶分享庫(kù),如果不需要支付寶分享可以注釋此行
//#define IMPORT_KAKAO_LIB                    //導(dǎo)入Kakao庫(kù),如果不需要Kakao分享可以注釋此行

JS 部分

  • 在 index.ios.js 文件中進(jìn)行初始化操作 (確定要分享出去的平臺(tái),初始化分享平臺(tái)的參數(shù)信息)

    a、首先導(dǎo)入 ShareSDK.js

     var ShareSDK = require('./ShareSDK')
    

    b、在 activePlatforms 數(shù)組中配置需要分享的平臺(tái)

    var activePlatforms = [
       ShareSDK.PlatformType.SinaWeibo,
       ShareSDK.PlatformType.TencentWeibo,
       ShareSDK.PlatformType.Wechat,
       ShareSDK.PlatformType.QQ,
       ShareSDK.PlatformType.Twitter,
       ShareSDK.PlatformType.Facebook
    ]
    

c、在 TotalPlatforms 對(duì)象中添加 ShareSDK 各個(gè)平臺(tái)的初始化參數(shù),例如(新浪微博、QQ、微信、Facebook、Twitter)

```
// 設(shè)置各個(gè)平臺(tái)初始化
// platforms
var TotalPlatforms =  {
    // key 值取自ShareSDK.PlatformType,詳情可參閱
    // 新浪微博
    [ShareSDK.PlatformType.SinaWeibo] : {
        app_key: '568898243',
        app_secret: '38a4f8204cc784f81f9f0daaf31e02e3',
        redirect_uri: 'http://www.sharesdk.cn',
        authType: ShareSDK.AuthType.Both
    },
    // 騰訊微博
    [ShareSDK.PlatformType.TencentWeibo] : {
        app_key: '801307650',
        app_secret: 'ae36f4ee3946e1cbb98d6965b0b2ff5c',
        redirect_uri: 'http://www.sharesdk.cn',
        authType: ShareSDK.AuthType.Both
    },
    // 微信系列 微信好友 微信朋友圈 微信收藏
    [ShareSDK.PlatformType.Wechat] : {
        app_id: 'wx4868b35061f87885',
        app_secret: '64020361b8ec4c99936c0e3999a9f249',
        authType: ShareSDK.AuthType.Both
    },
    // QQ系列 QQ好友 QQ空間
     [ShareSDK.PlatformType.QQ] : {
        app_id: '100371282',
        app_key: 'aed9b0303e3ed1e27bae87c33761161d',
        authType: ShareSDK.AuthType.Both
    }
// Facebook
// Twitter
// Google plus
// TODO 平臺(tái) app_key,app_id 參數(shù)信息表請(qǐng)戳:-》
}
```

以上平臺(tái)的app_key、app_secret等字段不同分享平臺(tái)可能不同,詳情可參考

d、調(diào)用初始化方法進(jìn)行初始化

```
// 初始化方法
ShareSDK.registerApp('iosv1001',activePlatforms,TotalPlatforms);

```

<a id="interface"></a>3、ShareSDK接口的調(diào)用

分享

  • 1、在需要分享操作的代碼塊中進(jìn)行構(gòu)造分享參數(shù),示例如下:

    // 構(gòu)造分享參數(shù)
    

var shareParams = {
Text: '分享內(nèi)容',
images: '',
url: 'http://www.mob.com',
title: '分享標(biāo)題',
type: ShareSDK.ContentType.Auto
}


* 2、調(diào)用分享方法,并設(shè)置回調(diào):

// 分享,傳入需要分享的平臺(tái),已經(jīng)構(gòu)建好的分享參數(shù)
ShareSDK.share(ShareSDK.platformType.SinaWeibo,shareParams)

// 在 react native 提供的方法componentWillMount中設(shè)置回調(diào)
componentWillMount() {
ShareSDK.callBack();
}



## 授權(quán)

* 1、調(diào)用授權(quán)方法,并設(shè)置獲取用戶(hù)信息的回調(diào)

// 平臺(tái)授權(quán)
ShareSDK.authorize(ShareSDK.platformType.SinaWeibo)

// 在 react native 提供的方法componentWillMount中設(shè)置回調(diào)
componentWillMount() {
ShareSDK.callBack();
}



## <a id="SocialConfiguration"></a>各個(gè)分享平臺(tái)參數(shù)配置描述
各個(gè)社交平臺(tái)在初始化時(shí) app_key、app_secret等字段不同分享平臺(tái)可能不同,可參考下表進(jìn)行調(diào)整。

平臺(tái)                 | 通用字段           | 通用字段               |通用字段             | iOS 特需           | Android 特需  |
--------------------|------------------|-----------------------|--------------------|------------------|-----------------------|
新浪微博              | app_key          | app_secret           |redirect_uri         | auth_type        |                      |
騰訊微博              | app_key          | app_secret           |redirect_uri         | ––               |                      |
豆瓣                 | api_key          | secret               | redirect_uri        | ––               |    | 
QQ系列               | app_id           | app_key              | ––                  | auth_type        |    |
人人網(wǎng)               |app_id            | app_key              |secret_key           | auth_type        |    |
開(kāi)心網(wǎng)               | api_key          | secret_key           |redirect_uri         | ––               |    |
Facebook            | api_key          | app_secret           |  ––                 | auth_type        |    |
Twitter             | consumer_key     | consumer_secret      |redirect_uri         |  ––              |    |
GooglePlus          |client_id         | client_secret        |redirect_uri         | auth_type        |    |
微信系列              | app_id          | app_secret           | ––                   |  ––             |    |
Pocket              | consumer_key     | ––                   |redirect_uri         | auth_type        |    |
Instragram          | client_id        | client_secret        |redirect_uri         |  ––              |    |
LinkedIn            | api_key          | secret_key           |redirect_uri         |  ––              |    |
Tumblr              | consumer_key     | consumer_secret      |callback_url         |  ––              |    |
Flicker             | api_key          | api_secret           | ––                  |  ––              |    |
有道                 | consumer_key     | consumer_secret      |oauth_callback       |  ––              |    |
印象筆記Evernote      | consumer_key     |consumer_secret       |––                   | ––               |    |
支付寶好友            | app_id           | ––                   | ––                  | ––               |    |
Pinterest           | client_id         | ––                   |––                   | ––               |    |
Kakao系列            | app_key          | rest_api_key         |redirect_uri         | auth_type        |     |
Dropbox             | app_key           | app_secret           |oauth_callback      |  ––              |     |
Vkontakte           | application_id    | secret_key           |––                   | ––              |     |
明道                 | app_key           | app_secret           |redirect_uri        | ––              |     |
易信                 | app_id            | app_secret           |redirect_uri        | auth_type        |     |
Instapaper           |consumer_key      | consumer_secret      |––                 |––               |    |
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,197評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,415評(píng)論 3 415
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事?!?“怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 176,104評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,884評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,647評(píng)論 6 408
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 55,130評(píng)論 1 323
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,208評(píng)論 3 441
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,366評(píng)論 0 288
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,887評(píng)論 1 334
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,737評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,939評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,478評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,174評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,586評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,827評(píng)論 1 283
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,608評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,914評(píng)論 2 372

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,630評(píng)論 25 708
  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,151評(píng)論 4 61
  • 1 人世間有多少的相聚就會(huì)有多少的離別,有一種離別是離世,另一種離別是分開(kāi),前者最悲傷后者最傷感。 那年我從廣州到...
    黃小蟲(chóng)子閱讀 2,223評(píng)論 0 0
  • 第十章 蛛絲馬跡的特寫(xiě) 我腦袋里面一片空白,有點(diǎn)晃晃悠悠,仿佛喝醉了酒。我發(fā)現(xiàn)自己的身體一直在顫抖,感覺(jué)自己正在...
    曾夢(mèng)雅閱讀 459評(píng)論 1 1
  • 看描寫(xiě)解放前的電影,經(jīng)常見(jiàn)到的一個(gè)場(chǎng)面,就是處于危險(xiǎn)中的主人公,給黃包車(chē)夫一點(diǎn)錢(qián),然后迅速離開(kāi),到了指定地點(diǎn),才發(fā)...
    飄著的云閱讀 782評(píng)論 0 0