react-ntaive Umeng分享之IOS篇

2/28/2022

Umeng官网文档 (opens new window)

# Objective-C集成

# 自动集成(Cocoapods)

  1. Podfile 中加入
    pod 'UMCommon'    //必须集成,由原来的UMCCommon变为了UMCommon
    pod 'UMDevice'    //必须集成
    pod 'UMLink'      //可选集成,对应了智能超链产品U-Link,如想统计分享回流人数、分享新增用户指标则必选

    # U-Share SDK UI模块(分享面板,建议添加)
    pod 'UMShare/UI'  //由原来的UMCShare/UI变为了UMShare/UI

    #集成微信(完整版14.4M)
    pod 'UMShare/Social/WeChat'

    #集成QQ/QZone/TIM(完整版7.6M)
    pod 'UMShare/Social/QQ'

    #集成新浪微博(完整版25.3M)
    pod 'UMShare/Social/Sina'

    # 其他 应用 请 移至 官方查看
  1. 配置完成后在 Podfile 所在目录执行
    pod update

不建议加入--no-repo-update 参数,若添加后仅从本地Cocoapods库中查找SDK,不再更新线上SDK。如果本地存在SDK会直接使用本地SDK版本(不是线上最新版本),若本地不存在SDK会产生错误。 也不建议使用 pod install 命令,此命令不会更新最新版本SDK。由于 pod search 命令对新增项目可能出现无法找到的情况,建议直接使用 pod update 进行直接更新。

  1. 添加项目配置

在Other Linker Flags加入-ObjC ,

注意不要写为-Objc

  1. 加入依赖系统库
  1. 加入以下系统库:
CoreTelephony.framework    获取运营商标识

libz.tbd  数据压缩

libsqlite.tbd  数据缓存

//libc++.tbd  如果集成应用性能监控SDK(U-APM),请添加该依赖库
WebKit.framework
SystemConfiguration.framework  判断网络状态
  1. 在项目设置target -> 选项卡General ->Linked Frameworks and Libraries设置如下:
  1. 添加第三方平台依赖库

根据您集成的不同平台,需要加入相关的平台依赖库,未列出平台则不需添加添加方式:选中项目Target -> General -> Linked Frameworks and Libraries列表中进行添加

-微信(完整版)

SystemConfiguration.framework
CoreTelephony.framework
libsqlite3.tbd
libc++.tbd
libz.tbd

-QQ(完整版) 精简版无需添加以下依赖库

SystemConfiguration.framework
libc++.tbd

-新浪微博(完整版)

SystemConfiguration.framework
CoreTelephony.framework
ImageIO.framework
libsqlite3.tbd
libz.tbd 
Photos.framework


其他平台请移步至 官网

# 第三方平台配置

# 配置SSO白名单

1.在项目中的info.plist中加入应用白名单,右键info.plist选择source code打开(plist具体设置在Build Setting -> Packaging -> Info.plist File可获取plist路径) 请根据选择的平台对以下配置进行裁剪:

<key>LSApplicationQueriesSchemes</key>
<array>
<!--微信 URL Scheme白名单-->
<string>wechat</string>
<string>weixin</string>
<string>weixinULAPI</string>

<!-- QQ、Qzone URL Scheme白名单-->
<string>mqqopensdklaunchminiapp</string>
<string>mqqopensdkminiapp</string>
<string>mqqapi</string>
<string>mqq</string>
<string>mqqOpensdkSSoLogin</string>
<string>mqqconnect</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>

<!--新浪微博 URL Scheme白名单-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>


<!--支付宝 URL Scheme白名单-->
<string>alipay</string>
<string>alipayshare</string>

<!--钉钉 URL Scheme白名单-->
<string>dingtalk</string>
<string>dingtalk-open</string>

<!--企业微信-->
<string>wxwork</string>
<string>wxworkdebug</string>
<string>wxworkrdm</string>
<string>wxworkrelease</string>

<!--抖音-->
<string>douyinopensdk</string>
<string>douyinsharesdk</string>
<string>snssdk1128</string>

<!--Linkedin URL Scheme白名单-->
<string>linkedin</string>
<string>linkedin-sdk2</string>
<string>linkedin-sdk</string>

<!--易信 URL Scheme白名单-->
<string>yixin</string>
<string>yixinopenapi</string>

<!-- instagram URL Scheme白名单-->
<string>instagram</string>

<!-- whatsapp URL Scheme白名单-->
<string>whatsapp</string>

<!-- line URL Scheme白名单-->
<string>line</string>

<!--Facebook URL Scheme白名单-->
<string>fbapi</string>
<string>fb-messenger-api</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>

<!--Kakao URL Scheme白名单-->
<!--注:以下第一个参数需替换为自己的kakao appkey-->
<!--格式为 kakao +"kakao appkey"-->
<string>kakaofa63a0b2356e923f3edd6512d531f546</string>
<string>kakaokompassauth</string>
<string>storykompassauth</string>
<string>kakaolink</string>
<string>kakaotalk-4.5.0</string>
<string>kakaostory-2.9.0</string>

<!-- pinterest URL Scheme白名单-->
<string>pinterestsdk.v1</string>

<!--Tumblr URL Scheme白名单-->
<string>tumblr</string>

<!--印象笔记-->
<string>evernote</string>
<string>en</string>
<string>enx</string>
<string>evernotecid</string>
<string>evernotemsg</string>

<!--有道云笔记-->
<string>youdaonote</string>
<string>ynotedictfav</string>
<string>com.youdao.note.todayViewNote</string>
<string>ynotesharesdk</string>


<!--Pocket-->
<string>pocket</string>
<string>readitlater</string>
<string>pocket-oauth-v1</string>
<string>fb131450656879143</string>
<string>en-readitlater-5776</string>
<string>com.ideashower.ReadItLaterPro3</string>
<string>com.ideashower.ReadItLaterPro</string>
<string>com.ideashower.ReadItLaterProAlpha</string>
<string>com.ideashower.ReadItLaterProEnterprise</string>

<!--VKontakte-->
<string>vk</string>
<string>vk-share</string>
<string>vkauthorize</string>

<!--Twitter-->
<string>twitter</string>
<string>twitterauth</string>

</array>

# 配置URL Scheme

  • URL Scheme是通过系统找到并跳转对应app的一类设置,通过向项目中的info.plist文件中加入URL types可使用第三方平台所注册的appkey信息向系统注册你的app,当跳转到第三方应用授权或分享后,可直接跳转回你的app。

  • 添加URL Types可工程设置面板设置

  • 配置第三方平台URL Scheme未列出则不需设置
平台 格式 举例 备注
微信 微信appKey wxdc1e388c3822c80b
QQ/Qzone 需要添加两项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

# 权限配置

以下是集成部分平台时需要进行的一些权限配置,未列出的平台暂不需要配置

微博

从微博SDk 3.2.1,即U-Share 6.9.1版开始,支持微博分享多张图片。需在 info.plist 文件中配置相册权限

<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>

抖音

分享的图片通过相册进行跨进程共享手段,如需使用分享功能,还需要填相册访问权限,在 info 标签栏中添加 Privacy - Photo Library Usage Description。


<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能访问相册</string>

其他请看 官方文档

# 初始化设置

#import <UMCommon/UMCommon.h>

-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions {
[UMConfigure initWithAppkey:@"Your appkey" channel:@"App Store"];
}

Last Updated: 3/15/2024, 2:13:06 PM