注:前提条件已经在友盟官网生成了双平台的APPKey;
1、进入链接1或者链接2,已经可以查看基本的配置方式。
2、进入链接,选中所需模块进行下载
3、ios平台配置
3-1、首先进入项目的ios目录,进入对应的工程名目录,新建两个文件夹:UMReactBridge
和UMComponent
3-2、打开刚才下载的文件,将ios目录下的common中的framework,拷入UMComponent
中。share目录中的最后所有文件,拷入UMComponent
中的新建文件夹UMShare
中
3-3、进入下载文件的ReactNative
目录,找到common
share
目录中对应的ios平台中的桥接.h
.m
文件,全部拷贝至我们项目刚刚新建的UMReactBridge
文件夹
3-4、xcode中打开工程目录,右键黄色项目名Add Files to "xxx"
,options
中选中Create groups
Copy items if needed
找到我们新建的UMReactBridge
和UMComponent
,add添加
报错: Native module cannot be null.
Module AppRegistry is not a registered callable module
3-5、在Other Linker Flags加入-ObjC ,注意不要写为-Objc,注:-ObjC属于链接库必备参数,如果不加此项,会导致库文件无法被正确链接,SDK无法正常运行
3-6、Linked Frameworks and Libraries
加入系统依赖库:可参照链接
libsqlite3.tbd
CoreGraphics.framework
SystemConfiguration.framework
CoreTelephony.framework
libc++.tbd
libz.tbd
3-7、配置SSO白名单,右键info.plist选择source code打开(plist具体设置在Build Setting -> Packaging -> Info.plist File可获取plist路径)请根据选择的平台对以下配置进行裁剪:
LSApplicationQueriesSchemes
wechat
weixin
sinaweibohd
sinaweibo
sinaweibosso
weibosdk
weibosdk2.5
mqqapi
mqq
mqqOpensdkSSoLogin
mqqconnect
mqqopensdkdataline
mqqopensdkgrouptribeshare
mqqopensdkfriend
mqqopensdkapi
mqqopensdkapiV2
mqqopensdkapiV3
mqqopensdkapiV4
mqzoneopensdk
wtloginmqq
wtloginmqq2
mqqwpa
mqzone
mqzonev2
mqzoneshare
wtloginqzone
mqzonewx
mqzoneopensdkapiV2
mqzoneopensdkapi19
mqzoneopensdkapi
mqqbrowser
mttbrowser
tim
timapi
timopensdkfriend
timwpa
timgamebindinggroup
timapiwallet
timOpensdkSSoLogin
wtlogintim
timopensdkgrouptribeshare
timopensdkapiV4
timgamebindinggroup
timopensdkdataline
wtlogintimV1
timapiV1
alipay
alipayshare
dingtalk
dingtalk-open
linkedin
linkedin-sdk2
linkedin-sdk
laiwangsso
yixin
yixinopenapi
instagram
whatsapp
line
fbapi
fb-messenger-api
fbauth2
fbshareextension
kakaofa63a0b2356e923f3edd6512d531f546
kakaokompassauth
storykompassauth
kakaolink
kakaotalk-4.5.0
kakaostory-2.9.0
pinterestsdk.v1
tumblr
evernote
en
enx
evernotecid
evernotemsg
youdaonote
ynotedictfav
com.youdao.note.todayViewNote
ynotesharesdk
gplus
pocket
readitlater
pocket-oauth-v1
fb131450656879143
en-readitlater-5776
com.ideashower.ReadItLaterPro3
com.ideashower.ReadItLaterPro
com.ideashower.ReadItLaterProAlpha
com.ideashower.ReadItLaterProEnterprise
vk
vk-share
vkauthorize
twitter
twitterauth
3-8、配置URL Scheme
URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。
添加URL Types可工程设置面板设置
3-9、初始化,AppDelegate.m
设置友盟appkey以及各个平台的appkey和secret
#import "RNUMConfigure.h"
#import
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
/**********************************************************************************************************************/
/* 打开调试日志 */
[UMConfigure setLogEnabled:YES];
/* 设置友盟appkey */
[RNUMConfigure initWithAppkey:@"5asd23323222se0001cc" channel:@"App Store"];
/*
* 关闭强制验证https,可允许http图片分享,但需要在info.plist设置安全域名
*/
[UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
/*
设置微信的appKey和appSecret
*/
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"wx179afsafasw23b54ae" appSecret:@"5a4142fsdsfswe9a40e93fc" redirectURL:nil];
/*
设置分享到QQ互联的appID
*/
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"110233248545"/*设置QQ平台的appID*/ appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];
/*
设置新浪的appKey和appSecret
*/
[[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"27239964" appSecret:@"fac50980a44sdsdsssdsc968ea572887" redirectURL:@"http://sns.whalecloud.com"];
/**********************************************************************************************************************/
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
BOOL result = [[UMSocialManager defaultManager] handleOpenURL:url];
if (!result) {
// 其他如支付等SDK的回调
}
return result;
}
3-10、对应的方法在UMShareModule.m
中查看
3-11、进入下载目录的ReactNative找到common下的js中的ShareUtil.js,拷贝到我们RN目录下,即可导入使用
3-12、使用方式,注:android与ios平台回调中的code值不一致,ios成功时code:200,android成功时code:0
import ShareUtil from './ShareUtil';
ShareUtile.auth(0,(code,result,message) =>{
this.setState({result:message});
if (code == 0){
this.setState({result:result.uid});
}
});
4、android集成
4-1、android/app目录下新建libs目录,将下载目录的Android中的所有jar包拷贝至libs
4-2、app下的build.gradle添加
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}
4-3、将下载文件的ReactNative目录中所有跟android相关的java文件拷贝至目标项目包下,修改对应包名,
4-4、包名目录下创建wxapi目录,新建WXEntryActivity文件
package 你的包名;
import com.umeng.socialize.weixin.view.WXCallbackActivity;
public class WXEntryActivity extends WXCallbackActivity {
}
4-5、添加回调
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
UMShareAPI.get(this).onActivityResult(requestCode, resultCode, data);
}
4-6、初始化配置
public class MainApplication extends Application implements ReactApplication {
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage(),
new SharePackage()
);
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, false);
RNUMConfigure.init(this, "5aeaxxxxxxxxxx175", "Umeng", UMConfigure.DEVICE_TYPE_PHONE,
"");
}
// 配置平台key、secret信息
{
PlatformConfig.setWeixin("wxxxxxxx", "5a4142ff9xxxxxxxx93fc");
PlatformConfig.setQQZone("110xxxxxx59", "3JjbG8aXxxxxsV");
PlatformConfig.setSinaWeibo("27xxxxxxx964", "fac50980a44e3e3afdxxxa572887", "www.baidu.com");
}
}
4-5、权限链接
4-6、配置activity,android-manifest-xml 链接