react-native集成Umeng分享---ios篇(当前最全最新最强的文档)----------小白的天堂

这里我们使用Cocoapods集成方式(能够保证使用最新的sdk,避免出现UIWebView和其他问题出现),如果需要手动集成的可以去umeng官网下载最新的sdk包,导入项目即可。(确保在微信,应用宝,QQ互联,微博等创建应用通过审核,并填写好Universal Links

  1. 导入umeng分享所需要的库
    在这里插入图片描述
# 基础库(包含统计)
pod 'UMCCommon'
# 日志库(调试)
pod 'UMCCommonLog'
#分享 UI模块(分享面板,如果使用um提供的面板可以添加,如果是想要自定义面板可以不加)
pod 'UMCShare/UI'
# 集成微信(完整版)
pod 'UMCShare/Social/WeChat'
# 集成QQ/QZone/TIM(完整版)
pod 'UMCShare/Social/QQ'
# 集成新浪微博(完整版)
pod 'UMCShare/Social/Sina'

这里主要介绍WeChat、QQ、WeiBo三种分享,如果需要看其他平台SDKs的基础库可以在um官网查看 导入 方式:
其他sdk导入

  1. 在项目ios目录执行pod update(pod install加载的库不是最新的)加载模块,下载react-native桥接文件,导入项目
    分享桥接文件下载
    在这里插入图片描述

  2. 导入其他需要的库
    其他库

  3. 在AppDelegate.m中添加umeng分享代码:
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

AppDelegate.m头部应用添加:

#import <UMCommon/UMCommon.h>
#import <UMShare/UMShare.h>
#import "WXApi.h"

#import <AVFoundation/AVFoundation.h>
@interface AppDelegate() <WXApiDelegate>
@end

didFinishLaunchingWithOptions方法中添加:

//在register之前打开log, 后续可以根据log排查问题
  [WXApi startLogByLevel:WXLogLevelDetail logBlock:^(NSString *log) {
      NSLog(@"WeChatSDK: %@", log);
  }];
  
//务必在调用自检函数前注册
  [WXApi registerApp:@"你的微信appkey" universalLink:@"你的微信配置的universalLink"];
  
//调用自检函数( ** 此处指在调试时可以开启,正式包应该 注释掉此自检函数 * *)
//  [WXApi checkUniversalLinkReady:^(WXULCheckStep step, WXCheckULStepResult* result) {
//      NSLog(@"%@, %u, %@, %@", @(step), result.success, result.errorInfo, result.suggestion);
//  }];

[UMConfigure setLogEnabled:YES];
 [UMConfigure initWithAppkey:@"你的umeng secret" channel:@"App Store"];
 [self configUSharePlatforms];

配置各平台的分享信息 (didFinishLaunchingWithOptions方法后添加)

- (void)configUSharePlatforms
{
    /* 设置微信的appKey和appSecret */
  [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_WechatSession appKey:@"你的微信appkey" appSecret:@"你的微信secret" redirectURL:@"http://mobile.umeng.com/social"];
  
    /* 设置分享到QQ互联的appID
     * U-Share SDK为了兼容大部分平台命名,统一用appKey和appSecret进行参数设置,而QQ平台仅需将appID作为U-Share的appKey参数传进即可。 */
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_QQ appKey:@"应用appId"/*设置QQ平台的appID*/  appSecret:nil redirectURL:@"http://mobile.umeng.com/social"];
  
  /* 设置新浪的appKey和appSecret */
    [[UMSocialManager defaultManager] setPlaform:UMSocialPlatformType_Sina appKey:@"微博应用appkey"  appSecret:@"微博应用appSecret" redirectURL:@"https://sns.whalecloud.com/sina2/callback"];
    //允许HTTP传输,分享图片(不加不能分享http图片,只能分享https的)
    [UMSocialGlobal shareInstance].isUsingHttpsWhenShareContent = NO;
}

添加回调函数:

//回调
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return  [WXApi handleOpenURL:url delegate:self];
}
//回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [WXApi handleOpenURL:url delegate:self];
}

//回调 ios 14必须,否则微信分享验证后不能跳转微信
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void(^)(NSArray<id<UIUserActivityRestoring>> * __nullable restorableObjects))restorationHandler {
    return [WXApi handleOpenUniversalLink:userActivity delegate:self];
}

添加微信分享响应回调函数(这是我在使用微信自己的分享sdk时添加的,使用umeng时可以先不加,应该没什么应用,暂时未测试)

//onReq是微信终端向第三方程序发起请求,要求第三方程序响应。第三方程序响应完后必须调用sendRsp返回。在调用sendRsp返回时,会切回到微信终端程序界面。
 1. (void)onReq:(BaseReq *)req
{}

 2. (void)onResp:(BaseResp *)resp
{
    if([resp isKindOfClass:[SendMessageToWXResp class]]) {
        
        switch (resp.errCode) {
            case WXSuccess:
            {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"成功" message:@"微信分享成功" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                [alert show];
            }
                break;
            case WXErrCodeUserCancel:
                break;
            default:
            {
                UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"失败" message:@"微信分享失败" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
                [alert show];
            }
                break;
        }
    }
}

3. 添加白名单
在这里插入图片描述
用Source Code方式打开Info.plist(添加后记得数一下个数是否一致!)

<key>LSApplicationQueriesSchemes</key>
	<array>
		<string>weixinULAPI</string>
		<string>weixin</string>
		<string>mqqopensdklaunchminiapp</string>
		<string>mqqopensdkminiapp</string>
		<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>
		<string>tim</string>
		<string>timapi</string>
		<string>timopensdkfriend</string>
		<string>timwpa</string>
		<string>timgamebindinggroup</string>
		<string>timapiwallet</string>
		<string>timOpensdkSSoLogin</string>
		<string>wtlogintim</string>
		<string>timopensdkgrouptribeshare</string>
		<string>timopensdkapiV4</string>
		<string>timgamebindinggroup</string>
		<string>timopensdkdataline</string>
		<string>wtlogintimV1</string>
		<string>timapiV1</string>
		<string>sinaweibohd</string>
		<string>sinaweibo</string>
		<string>sinaweibosso</string>
		<string>weibosdk</string>
		<string>weibosdk2.5</string>
	</array>

3. 添加Domains(这里首先要确保苹果开发平台中生成证书时是开启domains的,虽然现在都是默认开启的,但还是要查看一下为好),这里domains填写微信开放平台填写的UniversalLinks,确保能通过 UniversalLinks打开应用
Universal LInk制作请看这里
在这里插入图片描述
苹果开放平台当前证书选中Associated Domains
在这里插入图片描述
**

到此,xcode端的配置已经完成了,下边是js端的配置和调用部分

**
1.引入umeng桥接文件中的ShareUtil.js
2.分享调用:
ShareUtile.share(text, image, link, title, platform,
(code, message) => {
//console.log(code);
//console.log(message);
// message: 分享成功、分享失败、取消分享
});

text:分享内容描述
image:分享图片
link:分享链接
title:分享标题
platform:分享平台(0:QQ ;1:weibo;2:微信圈;3:朋友圈)

platform具体参数详见:
在这里插入图片描述
在这里插入图片描述
到此全部配置完成,可以测试分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_386605092

为了给小编点动力,客官您可以的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值