(只适用于QQ官方文档接入)
一、搭建SDK环境
1. 下载需要的SDK。SDK链接
2.先把SDK包中的TencentOpenAPI.framework文件复制一份到项目的根目录文件下,在从根目录中移入项目的Frameworks文件夹下(注意要移到根目录文件下),在弹出的对话框中勾选“Create groups for any added folders”,去掉“copy items into destination group’s folder(if needed)”,在Add to targets中选择要加入SDK的target之后点击finish。
3.在targets - 》General - 》Frameworks,Libraries,and EmbeddedContent中添加SDK依赖的系统库文件。分别是 “Security.framework”,“libiconv.dylib”,“SystemConfiguration.framework”,“CoreGraphics.Framework”、“libsqlite3.dylib”、“CoreTelephony.framework”、“libstdc++.dylib”、“libz.dylib”。(注意.dylib结尾的可用.tbd库代替,因为.dylib结尾的库现在搜不到了,libstdc++.dylib库可以不添加,iOS13后也搜不到了)。
4.修改必要的工程配置属性:在工程配置中的“Build Settings”一栏中找到“Linking”配置区,给“Other Linker Flags”配置项添加属性值“-fobjc-arc”。
5.在XCode中,选择你的工程设置项,选中“TARGETS”一栏,在“info”标签栏的“URL type”添加一条新的“URL scheme”,新的scheme = tencent + appid。
6.iOS9需要将你在外部调用的URL scheme列为白名单,才可以完成跳转(否则会报“检测手机中没有安装 QQ”的错误),具体的解决方案在info.plist中的LSApplicationQueriesSchemes增加一个item,为“mqq”(只针对分享QQ,分享到QQ空间不是这个,具体查看官方文档)。
7.在初始化QQ文件的头部引入文件<TencentOpenAPI/TencentOAuth.h>和"TencentOpenAPI/QQApiInterface.h",再在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions 中初始化
[[TencentOAuth alloc]initWithAppId:QQAppId andDelegate:nil]; ,
因为此处不需要用到代理,所以设置为nil,若是QQ登录,则为self;
-(BOOL)application:(UIApplication*)appopenURL:(NSURL*)urloptions:(NSDictionaryid> *)options{
[TencentOAuth HandleOpenURL:url];
return [QQApiInterface handleOpenURL:url delegate:(id<QQApiInterfaceDelegate>)self];
}
8.此点为QQ分享独有代码(若想分享不同的类型,可参考官方文档):
if (![TencentOAuth iphoneQQInstalled]) {
[[iToast makeText:@"检查到您没有安装腾讯QQ,请先安装QQ再分享。"] show];
}else{
NSURL*newsUrl = [NSURLURLWithString:@"https://www.baidu.com"];
QQApiNewsObject *newsObj = [QQApiNewsObject
objectWithURL:newsUrl
title:@"分享"
description:@"QQ分享描述"
previewImageURL:[NSURLURLWithString:@""]];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];
QQApiSendResultCodesent = [QQApiInterfacesendReq:req];
XCLog(@"分享结果:%ld",(long)sent);
}
网友评论