集成友盟分享与第三方登录
分享功能:微信(支持小程序)、QQ、新浪微博 登录功能:微信、QQ
作者
QQ: 289459798 QQ群: 161263093 欢迎更多的喜欢开源的小伙伴加入
友盟SDK版本
Android:v6.9.1(精简版) IOS: v6.9.1
准备工作
- 到友盟平台申请账号 http://www.umeng.com/
- 微信开发平台申请 http://open.weixin.qq.com/
- QQ开放平台申请 http://open.qq.com/
- 新浪开放平台申请http://open.weibo.com/
安装
npm install react-native-umshare@2.0.0 --save
react-native link
Android
添加Activity
- 微信
需要手动在包名下添加wxapi.WXEntryActivity
文件,继承WXCallbackActivity
- 新浪
//appid一定要存在string文件中,并以facebook_app_id名字进行保存。
android 需要编译出来的apk文件的签名和申请微信和QQ时填写的一致,开发过程中可以在build.gradle 文件加入以下代码
signingConfigs {
debug {
storeFile file('keystore 文件路径')
storePassword "keydtore 密码"
keyAlias "keydtore 别名"
keyPassword "keydtore 别名密码"
}
}
IOS
-
在项目的的
Build Settings
中搜索header
找到Framework Search Paths
添加$(SRCROOT)/../node_modules/react-native-umshare/ios/RCTUMShareModule/RCTUMShareModule/UMSocial/SocialFrameworks
-
将
Libraries
->RCTUMShareModule.xcodeproj
->RCTUMShareModule
->UMSocial
->SocialFrameworks
和UMSocialUI
文件夹拖到您的主工程下,不需要勾选Copy items if needed
-
添加依赖库
- ibsqlite3.tbd
- CoreGraphics.framework
- SystemConfiguration.framework
- libc++.tbd
- libz.tbd
- ImageIO.framework
-
配置SSO白名单
<key>LSApplicationQueriesSchemes</key>
<array>
<!-- 微信 URL Scheme 白名单-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ、Qzone URL Scheme 白名单-->
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</string>
<string>mqqopensdkdataline</string>
<string>mqqopensdkgrouptribeshare</string>
<string>mqqopensdkfriend</string>
<string>mqqopensdkapi</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdkapiV3</string>
<string>mqqopensdkapiV4</string>
<string>mqzoneopensdk</string>
<string>wtloginmqq</string>
<string>wtloginmqq2</string>
<string>mqqwpa</string>
<string>mqzone</string>
<string>mqzonev2</string>
<string>mqzoneshare</string>
<string>wtloginqzone</string>
<string>mqzonewx</string>
<string>mqzoneopensdkapiV2</string>
<string>mqzoneopensdkapi19</string>
<string>mqzoneopensdkapi</string>
<string>mqqbrowser</string>
<string>mttbrowser</string>
</array>
-
URL Scheme
- 微信
微信appKey -> wxdc1e388c3822c80b - QQ
需要添加两项URL Scheme:
1、"tencent"+腾讯QQ互联应用appID
2、“QQ”+腾讯QQ互联应用appID转换成十六进制(不足8位前面补0) 如appID:100424468 1、tencent100424468
2、QQ05fc5b14| QQ05fc5b14为100424468转十六进制而来,因不足8位向前补0,然后加"QQ"前缀 - 新浪微博 “wb”+新浪appKey -> wb3921700954
- 微信
-
修改
AppDelegate.m
#import <UMShare/UMShare.h>...//#define __IPHONE_10_0 100000#if __IPHONE_OS_VERSION_MAX_ALLOWED > 100000- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options{//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响。BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url options:options];if (!result) {// 其他如支付等SDK的回调// result = other;}return result;}#endif- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation{//6.3的新的API调用,是为了兼容国外平台(例如:新版facebookSDK,VK等)的调用[如果用6.2的api调用会没有回调],对国内平台没有影响BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url sourceApplication:sourceApplication annotation:annotation];if (!result) {// 其他如支付等SDK的回调// result = other;}return result;}- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];if (!result) {// 其他如支付等SDK的回调// result = other;}return result;}
使用方式
先初始化参数
;... // 第二个参数决定在分享界面的排序1_、2_、3_为前缀UMShare;
调用分享
;...UMShare
调用登录
UMShare UMShare
API
/** * 初始化分享参数 * @param appkey * @param sharePlatforms * @param debug */; /** * 友盟默认UI分享 * @param title * @param desc * @param thumb * @param link */; /** * 友盟默认UI分享小程序 * @param name 微信小程序的id,gc_xxxxx * @param title * @param desc * @param path 小程序页面路径 /page/xxx * @param thumb * @param link 当微信不支持小程序时跳转的h5页面地址 * @oaram mode 小程序的模式(开发、体验、正式)仅对ios游泳 */; /** * 自定义UI, 微信分享 * @param title * @param desc * @param thumb * @param link */; /** * 自定义UI, 微信朋友圈分享 * @param title * @param desc * @param thumb * @param link */; /** * 自定义UI, QQ分享 * @param title * @param desc * @param thumb * @param link */; /** * 自定义UI, QQ空间分享 * @param title * @param desc * @param thumb * @param link */; /** * 自定义UI, 新浪分享 * @param title * @param desc * @param thumb * @param link */; /** * 微信登录 * @returns */; /** * QQ登录 * @returns */;