ShareSDK-iOS (v3.x) for React-Native
- 項目地址:https://github.com/Code4AppiOS/RNShareSDK
- JS 開發(fā)者方便的集成ShareSDK分享和授權(quán)功能火脉。
- ShareSDK for android 集成文檔 網(wǎng)頁鏈接
目錄
- Getting started
- Noticea
<a id="Download"></a>1、新建項目并下載 ShareSDK
1狂芋、React-Native 項目環(huán)境搭建榨馁,不會的童鞋自行面壁哈: 網(wǎng)頁鏈接.
-
2、ShareSDK iOS版本的 RN 插件是在ShareSDK iOS版本基礎(chǔ)上對原生模塊的接口做導(dǎo)出供給JS端使用银酗,是依賴ShareSDK for iOS的辆影。所以下載本示例DEMO就包含了以下2部分徒像,下載下來的文件目錄截圖如下:
(1)ShareSDK iOS 版本的下載:網(wǎng)頁鏈接
(2)React-Native 插件的下載: :網(wǎng)頁鏈接
(包含demo,需要的是ShareSDKManager.h / ShareSDKManager.m / ShareSDK.js) 將以上文件ShareSDKManager.h / ShareSDKManager.m / ShareSDK 拖到新建的 RN 項目中的 ios 目錄下蛙讥,將 ShareSDK.js 拖入 RN 項目中锯蛀。
注意:Sources(導(dǎo)入文件) 就是集成所需要的所有文件
<a id="init"></a> 2、初始化ShareSDK并設(shè)置社交平臺
iOS 部分
- 1次慢、下載的 ShareSDK 文件夾拖拽進項目
注意:請務(wù)必在上述步驟中選擇“Create groups for any added folders”單選按鈕組旁涤。如果你選擇“Create folder references for any added folders”,一個藍色的文件夾引用將被添加到項目并且將無法找到它的資源迫像。
- 2劈愚、添加必須的依賴庫
必須添加的依賴庫如下 ( Xcode 7 下 .dylib庫后綴名更改為.tbd ):
libicucore.dylib
libz.dylib
libstdc++.dylib
JavaScriptCore.framework
以下依賴庫根據(jù)社交平臺添加:
新浪微博SDK依賴庫
ImageIO.framework
libsqlite3.dylib
微信SDK依賴庫
libsqlite3.dylib
QQ好友和QQ空間SDK依賴庫
libsqlite3.dylib
短信和郵件需要依賴庫
MessageUI.framework
Google+SDK依賴庫
CoreMotion.framework
CoreLocation.framework
MediaPlayer.framework
AssetsLibrary.framework
添加依賴庫的方法如下:
3、各個社交平臺需要的配置(url schemes 等)可以參考文檔中的可選配置項:網(wǎng)頁鏈接
附錄:iOS 9 配置文檔請戳 -》 網(wǎng)頁鏈接
4闻妓、選擇需要的平臺SDK
打開 ShareSDKManager.m 菌羽,按需注釋掉已導(dǎo)入的原生SDK庫 (不需要的平臺SDK也可以做刪除處理)
#define IMPORT_SINA_WEIBO_LIB //導(dǎo)入新浪微博庫,如果不需要新浪微博客戶端分享可以注釋此行
#define IMPORT_QZONE_QQ_LIB //導(dǎo)入騰訊開發(fā)平臺庫由缆,如果不需要QQ空間分享注祖、SSO或者QQ好友分享可以注釋此行
#define IMPORT_RENREN_LIB //導(dǎo)入人人庫,如果不需要人人SSO均唉,可以注釋此行
#define IMPORT_GOOGLE_PLUS_LIB //導(dǎo)入Google+庫是晨,如果不需要Google+分享可以注釋此行
#define IMPORT_WECHAT_LIB //導(dǎo)入微信庫,如果不需要微信分享可以注釋此行
//#define IMPORT_ALIPAY_LIB //導(dǎo)入支付寶分享庫舔箭,如果不需要支付寶分享可以注釋此行
//#define IMPORT_KAKAO_LIB //導(dǎo)入Kakao庫罩缴,如果不需要Kakao分享可以注釋此行
JS 部分
-
在 index.ios.js 文件中進行初始化操作 (確定要分享出去的平臺,初始化分享平臺的參數(shù)信息)
a层扶、首先導(dǎo)入 ShareSDK.js
var ShareSDK = require('./ShareSDK')
b箫章、在 activePlatforms 數(shù)組中配置需要分享的平臺
var activePlatforms = [ ShareSDK.PlatformType.SinaWeibo, ShareSDK.PlatformType.TencentWeibo, ShareSDK.PlatformType.Wechat, ShareSDK.PlatformType.QQ, ShareSDK.PlatformType.Twitter, ShareSDK.PlatformType.Facebook ]
c、在 TotalPlatforms 對象中添加 ShareSDK 各個平臺的初始化參數(shù)怒医,例如(新浪微博炉抒、QQ、微信稚叹、Facebook焰薄、Twitter)
```
// 設(shè)置各個平臺初始化
// 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 平臺 app_key,app_id 參數(shù)信息表請戳:-》
}
```
以上平臺的app_key、app_secret等字段不同分享平臺可能不同扒袖,詳情可參考
d塞茅、調(diào)用初始化方法進行初始化
```
// 初始化方法
ShareSDK.registerApp('iosv1001',activePlatforms,TotalPlatforms);
```
<a id="interface"></a>3、ShareSDK接口的調(diào)用
分享
-
1季率、在需要分享操作的代碼塊中進行構(gòu)造分享參數(shù)野瘦,示例如下:
// 構(gòu)造分享參數(shù)
var shareParams = {
Text: '分享內(nèi)容',
images: '',
url: 'http://www.mob.com',
title: '分享標題',
type: ShareSDK.ContentType.Auto
}
* 2、調(diào)用分享方法,并設(shè)置回調(diào):
// 分享,傳入需要分享的平臺,已經(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è)置獲取用戶信息的回調(diào)
// 平臺授權(quán)
ShareSDK.authorize(ShareSDK.platformType.SinaWeibo)
// 在 react native 提供的方法componentWillMount中設(shè)置回調(diào)
componentWillMount() {
ShareSDK.callBack();
}
## <a id="SocialConfiguration"></a>各個分享平臺參數(shù)配置描述
各個社交平臺在初始化時 app_key鞭光、app_secret等字段不同分享平臺可能不同吏廉,可參考下表進行調(diào)整。
平臺 | 通用字段 | 通用字段 |通用字段 | 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 | |
開心網(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 |–– |–– | |