QQ以及QQ空间分享相关

编程入门 行业动态 更新时间:2024-10-25 14:35:43

QQ以及QQ<a href=https://www.elefans.com/category/jswz/34/1771407.html style=空间分享相关"/>

QQ以及QQ空间分享相关

最近做了一个分享内容到QQ以及QQ空间的功能,记录一下以备不时之需。

1、首先我们需要到,并获取一个APP ID和APP KEY。这两样东西在使用QQ登录和分享到QQ/QQ空间都会用到。这里只讲分享到QQ/QQ空间的处理。

顺便提一句,注册的安卓应用和苹果应用APP ID和APP KEY都是一致的,所以安卓或苹果只需注册一个则两者都可以使用。

2、下载腾讯的SDK 选择这个:iOS_SDK_V3.1.0 并下载。下载完成后将SDK中的 TencentOpenAPI.framework 和 TencentOpenApi_IOS_Bundle.bundle文件放到自己工程内。

3、首先我们需要在自己工程的AppDelegate.m文件中导入下面三个头文件:
import ” TencentOpenAPI/TencentOAuth.h”
import “TencentOpenAPI/QQApiInterface.h”
import “TencentOpenAPI/TencentApiInterface.h”

然后需要初始化一下授权:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {'''
(void)[[TencentOAuth alloc] initWithAppId:TENCENT_ID andDelegate:self];
'''return YES;}

TENCENT_ID就是注册应用时获取的APP ID。

4.1、在TARGETS>INFO>URL TYPES中加入腾讯的URL Schemes,格式为:tencent+APP ID。如下图所示

这样就可以跳转到QQ应用准备分享。

4.2、苹果公司iOS 9系统策略更新,限制了http协议的访问,此外应用需要在“Info.plist”中将要使用的URL Schemes列为白名单,才可正常检查其他应用是否安装。

受此影响,当你的应用在iOS 9中需要使用 QQ/QQ空间/支付宝/微信SDK 的相关能力(分享、收藏、支付、登录等)时,需要在“Info.plist”里增加如下代码:

<key>LSApplicationQueriesSchemes</key><array><!-- 微信 URL Scheme 白名单--><string>wechat</string><string>weixin</string><!-- 新浪微博 URL Scheme 白名单--><string>sinaweibohd</string><string>sinaweibo</string><string>sinaweibosso</string><string>weibosdk</string><string>weibosdk2.5</string><!-- QQ、Qzone URL Scheme 白名单--><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>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>mqzoneopensdk</string><!-- 支付宝  URL Scheme 白名单--><string>alipay</string><string>alipayshare</string></array>

5、准备分享内容的主体(以分享新闻链接为例):

NSString *utf8String = @"";
NSString *title = @"新闻标题";
NSString *description = @"新闻描述";
NSString *previewImageUrl = @".jpg";
QQApiNewsObject *newsObj = [QQApiNewsObject
objectWithURL:[NSURL URLWithString:utf8String]
title:title
description:description
previewImageURL:[NSURL URLWithString:previewImageUrl]];
SendMessageToQQReq *req = [SendMessageToQQReq reqWithContent:newsObj];
//将内容分享到qq
//QQApiSendResultCode sent = [QQApiInterface sendReq:req];
//将内容分享到qzone
QQApiSendResultCode sent = [QQApiInterface SendReqToQZone:req];

详细的分享内容可以参照 腾讯的api使用说明:

6、设置分享后回调。在AppDelegate.m里设置回调处理,这样设置的目的是分享完成之后能够返回自己的应用:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {if([url.absoluteString hasPrefix:[NSString stringWithFormat:@"tencent%@",TENCENT_ID]]){return  [QQApiInterface handleOpenURL:url delegate:self];}return YES;
}

设置分享完成,返回自己应用后的处理:

#pragma mark - WeiChat或QQ 发送与接收请求处理
- (void)onReq:(BaseReq *)req {Log(@"on Req: %@", req.description);
}- (void)onResp:(BaseResp *)resp {if ([resp isKindOfClass:SendMessageToWXResp.class]) {if (resp.errCode == 0) {NewAlertSuccess(@"提示", @"分享成功!");} else if (resp.errCode != -2) {NewAlertWarning(@"提示", resp.errStr);}} else if([resp isKindOfClass:SendAuthResp.class]) {SendAuthResp *aresp = (SendAuthResp *)resp;if (aresp.errCode== 0) {NSString *code = aresp.code;[[NSNotificationCenter defaultCenter] postNotificationName:@"WeiChatCode" object:code];}}else if ([resp.class isSubclassOfClass: [SendMessageToQQResp class]]){ //qq回调SendMessageToQQResp *QQResp = (SendMessageToQQResp *)resp;if ([QQResp.result isEqualToString:@"0"]) {NewAlertSuccess(@"提示", @"分享成功!");}}
}

需要注意一点,如果自己应用中也同时集成了微信分享的话,由于微信分享的回调处理的协议方法名与QQ是一样的,只有返回参数不同,可能会有问题存在。这时我们只需像上边那样,判断一下返回参数的类型分别处理即可。

更多推荐

QQ以及QQ空间分享相关

本文发布于:2024-02-12 17:40:47,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1688762.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:空间   QQ

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!