React Native-ShareSDK

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

目录

<a id="Download"></a>1、新建项目并下载 ShareSDK

  • 1、React-Native 项目环境搭建,不会的童鞋自行面壁哈: 网页链接.

  • 2、ShareSDK iOS版本的 RN 插件是在ShareSDK iOS版本基础上对原生模块的接口做导出供给JS端使用,是依赖ShareSDK for iOS的。所以下载本示例DEMO就包含了以下2部分,下载下来的文件目录截图如下:

    (1)ShareSDK iOS 版本的下载:网页链接

    (2)React-Native 插件的下载: :网页链接
    (包含demo,需要的是ShareSDKManager.h / ShareSDKManager.m / ShareSDK.js)

    初始化
  • 将以上文件ShareSDKManager.h / ShareSDKManager.m / ShareSDK 拖到新建的 RN 项目中的 ios 目录下,将 ShareSDK.js 拖入 RN 项目中。

  • 注意:Sources(导入文件) 就是集成所需要的所有文件

<a id="init"></a> 2、初始化ShareSDK并设置社交平台

iOS 部分

  • 1、下载的 ShareSDK 文件夹拖拽进项目
img

注意:请务必在上述步骤中选择“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

以下依赖库根据社交平台添加:

新浪微博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

添加依赖库的方法如下:

img
  • 3、各个社交平台需要的配置(url schemes 等)可以参考文档中的可选配置项:网页链接

  • 附录:iOS 9 配置文档请戳 -》 网页链接

  • 4、选择需要的平台SDK

打开 ShareSDKManager.m ,按需注释掉已导入的原生SDK库 (不需要的平台SDK也可以做删除处理)
#define IMPORT_SINA_WEIBO_LIB               //导入新浪微博库,如果不需要新浪微博客户端分享可以注释此行
#define IMPORT_QZONE_QQ_LIB                 //导入腾讯开发平台库,如果不需要QQ空间分享、SSO或者QQ好友分享可以注释此行
#define IMPORT_RENREN_LIB                   //导入人人库,如果不需要人人SSO,可以注释此行
#define IMPORT_GOOGLE_PLUS_LIB              //导入Google+库,如果不需要Google+分享可以注释此行
#define IMPORT_WECHAT_LIB                   //导入微信库,如果不需要微信分享可以注释此行
//#define IMPORT_ALIPAY_LIB                   //导入支付宝分享库,如果不需要支付宝分享可以注释此行
//#define IMPORT_KAKAO_LIB                    //导入Kakao库,如果不需要Kakao分享可以注释此行

JS 部分

  • 在 index.ios.js 文件中进行初始化操作 (确定要分享出去的平台,初始化分享平台的参数信息)

    a、首先导入 ShareSDK.js

     var ShareSDK = require('./ShareSDK')
    

    b、在 activePlatforms 数组中配置需要分享的平台

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

c、在 TotalPlatforms 对象中添加 ShareSDK 各个平台的初始化参数,例如(新浪微博、QQ、微信、Facebook、Twitter)

```
// 设置各个平台初始化
// 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 参数信息表请戳:-》
}
```

以上平台的app_key、app_secret等字段不同分享平台可能不同,详情可参考

d、调用初始化方法进行初始化

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

```

<a id="interface"></a>3、ShareSDK接口的调用

分享

  • 1、在需要分享操作的代码块中进行构造分享参数,示例如下:

    // 构造分享参数
    

var shareParams = {
Text: '分享内容',
images: '',
url: 'http://www.mob.com',
title: '分享标题',
type: ShareSDK.ContentType.Auto
}


* 2、调用分享方法,并设置回调:

// 分享,传入需要分享的平台,已经构建好的分享参数
ShareSDK.share(ShareSDK.platformType.SinaWeibo,shareParams)

// 在 react native 提供的方法componentWillMount中设置回调
componentWillMount() {
ShareSDK.callBack();
}



## 授权

* 1、调用授权方法,并设置获取用户信息的回调

// 平台授权
ShareSDK.authorize(ShareSDK.platformType.SinaWeibo)

// 在 react native 提供的方法componentWillMount中设置回调
componentWillMount() {
ShareSDK.callBack();
}



## <a id="SocialConfiguration"></a>各个分享平台参数配置描述
各个社交平台在初始化时 app_key、app_secret等字段不同分享平台可能不同,可参考下表进行调整。

平台                 | 通用字段           | 通用字段               |通用字段             | 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        |    |
人人网               |app_id            | app_key              |secret_key           | auth_type        |    |
开心网               | 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      |––                 |––               |    |
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,254评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,875评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,682评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,896评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,015评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,152评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,208评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,962评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,388评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,700评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,867评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,551评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,186评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,901评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,142评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,689评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,757评论 2 351

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,900评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,068评论 4 62
  • 1 人世间有多少的相聚就会有多少的离别,有一种离别是离世,另一种离别是分开,前者最悲伤后者最伤感。 那年我从广州到...
    黄小虫子阅读 2,192评论 0 0
  • 第十章 蛛丝马迹的特写 我脑袋里面一片空白,有点晃晃悠悠,仿佛喝醉了酒。我发现自己的身体一直在颤抖,感觉自己正在...
    曾梦雅阅读 437评论 1 1
  • 看描写解放前的电影,经常见到的一个场面,就是处于危险中的主人公,给黄包车夫一点钱,然后迅速离开,到了指定地点,才发...
    飘着的云阅读 762评论 0 0