美文网首页
项目中引入QQ分享

项目中引入QQ分享

作者: 爱敲代码的小鱼儿 | 来源:发表于2019-10-24 18:53 被阅读0次

(只适用于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);

    }

相关文章

网友评论

      本文标题:项目中引入QQ分享

      本文链接:https://www.haomeiwen.com/subject/vgpdvctx.html