lipengwei
2020-04-09 5f1e4088ab75c264ead4347a7dc8c2e142023990
commit | author | age
5f1e40 1 ///
L 2 /// \file QQApiInterface.h
3 /// \brief QQApi接口简化封装
4 ///
5 /// Created by Tencent on 12-5-15.
6 /// Copyright (c) 2012年 Tencent. All rights reserved.
7 ///
8
9 #import <Foundation/Foundation.h>
10 #import "QQApiInterfaceObject.h"
11
12 typedef void (^sendResultBlock)(NSDictionary *result);
13
14 /**
15  \brief 处理来至QQ的请求及响应的回调协议
16  */
17 @protocol QQApiInterfaceDelegate <NSObject>
18
19 /**
20  处理来至QQ的请求
21  */
22 - (void)onReq:(QQBaseReq *)req;
23
24 /**
25  处理来至QQ的响应
26  */
27 - (void)onResp:(QQBaseResp *)resp;
28
29 /**
30  处理QQ在线状态的回调
31  */
32 - (void)isOnlineResponse:(NSDictionary *)response;
33
34 @end
35
36 /**
37  \brief 对QQApi的简单封装类
38  */
39 @interface QQApiInterface : NSObject
40
41 /**
42  处理由手Q唤起的普通跳转请求
43  \param url 待处理的url跳转请求
44  \param delegate 第三方应用用于处理来至QQ请求及响应的委托对象
45  \return 跳转请求处理结果,YES表示成功处理,NO表示不支持的请求协议或处理失败
46  */
47 + (BOOL)handleOpenURL:(NSURL *)url delegate:(id<QQApiInterfaceDelegate>)delegate;
48
49 /**
50  处理由手Q唤起的universallink跳转请求
51  \param universallink 待处理的universallink跳转请求
52  \param delegate 第三方应用用于处理来至QQ请求及响应的委托对象
53  \return 跳转请求处理结果,YES表示成功处理,NO表示不支持的请求协议或处理失败
54  */
55 + (BOOL)handleOpenUniversallink:(NSURL*)universallink delegate:(id<QQApiInterfaceDelegate>)delegate;
56
57 /**
58  向手Q发起分享请求
59  \param req 分享内容的请求
60  \return 请求发送结果码
61  */
62 + (QQApiSendResultCode)sendReq:(QQBaseReq *)req;
63
64
65 /**
66  向手Q QZone结合版发起分享请求
67  \note H5分享只支持单张网络图片的传递
68  \param req 分享内容的请求
69  \return 请求发送结果码
70  */
71 + (QQApiSendResultCode)SendReqToQZone:(QQBaseReq *)req;
72
73 /**
74  向手Q发起设置QQ头像
75  \param req 分享内容的请求
76  \return 请求发送结果码
77  */
78 + (QQApiSendResultCode)sendMessageToQQAvatarWithReq:(QQBaseReq*)req;
79
80 /**
81  向手Q发起组图分享到表情收藏
82  \param req 分享内容的请求
83  \return 请求发送结果码
84  */
85 + (QQApiSendResultCode)sendMessageToFaceCollectionWithReq:(QQBaseReq*)req;
86
87 /**
88  检测是否已安装QQ
89  \return 如果QQ已安装则返回YES,否则返回NO
90
91  \note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
92  只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
93  第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
94  */
95 + (BOOL)isQQInstalled;
96
97 /**
98  检测是否已安装TIM
99  \return 如果TIM已安装则返回YES,否则返回NO
100  
101  \note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
102  只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
103  第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
104  */
105 + (BOOL)isTIMInstalled;
106
107 /**
108  检测QQ是否支持API调用
109  \return 如果当前安装QQ版本支持API调用则返回YES,否则返回NO
110  */  
111 + (BOOL)isQQSupportApi;
112
113 /**
114  检测TIM是否支持API调用
115  \return 如果当前安装TIM版本支持API调用则返回YES,否则返回NO
116  */
117 + (BOOL)isTIMSupportApi __attribute__((deprecated("已过期, 建议删除调用,调用地方用YES替代。")));
118
119 /**
120  检测是否支持分享
121  \return 如果当前已安装QQ且QQ版本支持API调用 或者 当前已安装TIM且TIM版本支持API调用则返回YES,否则返回NO
122  */
123 + (BOOL)isSupportShareToQQ;
124
125 /**
126  检测是否支持分享到QQ结合版QZone
127  \return 如果当前已安装QQ且QQ版本支持API调用则返回YES,否则返回NO
128  */
129 + (BOOL)isSupportPushToQZone;
130
131 /**
132  启动QQ
133  \return 成功返回YES,否则返回NO
134  */
135 + (BOOL)openQQ;
136
137 /**
138  启动TIM
139  \return 成功返回YES,否则返回NO
140  */
141 + (BOOL)openTIM;
142
143 /**
144  获取QQ下载地址
145  
146  如果App通过<code>QQApiInterface#isQQInstalled</code>和<code>QQApiInterface#isQQSupportApi</code>检测发现QQ没安装或当前版本QQ不支持API调用,可引导用户通过打开此链接下载最新版QQ。
147  \return iPhoneQQ下载地址
148  */
149 + (NSString *)getQQInstallUrl;
150
151 /**
152  获取TIM下载地址
153  
154  如果App通过<code>QQApiInterface#isTIMInstalled</code>检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。
155  \return iPhoneTIM下载地址
156  */
157 + (NSString *)getTIMInstallUrl;
158 @end