lpw
2022-03-14 7acec95dedc4b1175a8d1fc5a123f5d381d276f8
commit | author | age
eec5d6 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
7acec9 14 // 发送消息回调是否发送成功
L 15 typedef void(^QQApiInterfaceSendMessageResultBlock)(QQApiSendResultCode sendResultCode, NSString *message);
16
eec5d6 17 /**
L 18  \brief 处理来至QQ的请求及响应的回调协议
19  */
20 @protocol QQApiInterfaceDelegate <NSObject>
21
22 /**
23  处理来至QQ的请求
24  */
25 - (void)onReq:(QQBaseReq *)req;
26
27 /**
28  处理来至QQ的响应
29  */
30 - (void)onResp:(QQBaseResp *)resp;
31
32 /**
33  处理QQ在线状态的回调
34  */
35 - (void)isOnlineResponse:(NSDictionary *)response;
36
37 @end
38
39 /**
40  \brief 对QQApi的简单封装类
41  */
42 @interface QQApiInterface : NSObject
43
44 /**
45  处理由手Q唤起的普通跳转请求
46  \param url 待处理的url跳转请求
47  \param delegate 第三方应用用于处理来至QQ请求及响应的委托对象
48  \return 跳转请求处理结果,YES表示成功处理,NO表示不支持的请求协议或处理失败
49  */
50 + (BOOL)handleOpenURL:(NSURL *)url delegate:(id<QQApiInterfaceDelegate>)delegate;
51
52 /**
53  处理由手Q唤起的universallink跳转请求
54  \param universallink 待处理的universallink跳转请求
55  \param delegate 第三方应用用于处理来至QQ请求及响应的委托对象
56  \return 跳转请求处理结果,YES表示成功处理,NO表示不支持的请求协议或处理失败
57  */
58 + (BOOL)handleOpenUniversallink:(NSURL*)universallink delegate:(id<QQApiInterfaceDelegate>)delegate;
59
60 /**
61  向手Q发起分享请求
62  \param req 分享内容的请求
63  \return 请求发送结果码
64  */
65 + (QQApiSendResultCode)sendReq:(QQBaseReq *)req;
66
67
68 /**
69  向手Q QZone结合版发起分享请求
70  \note H5分享只支持单张网络图片的传递
71  \param req 分享内容的请求
72  \return 请求发送结果码
73  */
74 + (QQApiSendResultCode)SendReqToQZone:(QQBaseReq *)req;
75
76 /**
77  向手Q发起设置QQ头像
78  \param req 分享内容的请求
79  \return 请求发送结果码
80  */
81 + (QQApiSendResultCode)sendMessageToQQAvatarWithReq:(QQBaseReq*)req;
7acec9 82
L 83
84 + (QQApiSendResultCode)sendMessageToQQAuthWithReq:(QQBaseReq*)req;
85
86
87 /**
88  向手Q发起绑群请求
89  \param req 请求的内容
90  \param resultBlock 请求回调
91  */
92 + (void)sendThirdAppBindGroupReq:(QQBaseReq *)req resultBlock:(sendResultBlock)resultBlock;
93
94 /**
95  向手Q发起加群请求
96  \param req 请求的内容
97  \param resultBlock 请求回调
98  */
99 + (void)sendThirdAppJoinGroupReq:(QQBaseReq *)req resultBlock:(sendResultBlock)resultBlock;
100
101 /**
102  向手Q发起解绑群请求
103  \param req 请求的内容
104  \param resultBlock 请求回调
105  */
106 + (void)sendThirdAppUnBindGroupReq:(QQBaseReq *)req resultBlock:(sendResultBlock)resultBlock;
107
108 /**
109  向手Q发起创建QQ频道的请求
110  \param req 请求的内容
111  \param resultBlock 回调发送结果
112  \return void
113  */
114 + (void)sendMessageToCreateQQGroupProWithMessageRequest:(SendMessageToQQReq *)messageRequest sendResultBlock:(QQApiInterfaceSendMessageResultBlock)sendResultBlock;
115
116
117 /**
118  向手Q发起加入QQ频道的请求
119  \param req 请求的内容
120  \param resultBlock 回调发送结果
121  \return void
122  */
123 + (void)sendMessageToJoinQQGroupProWithMessageRequest:(SendMessageToQQReq *)messageRequest sendResultBlock:(QQApiInterfaceSendMessageResultBlock)sendResultBlock;
124
125
126 /**
127  向手Q发起查询QQ频道openID的请求
128  \param req 请求的内容
129  \param resultBlock 请求回调
130  */
131 + (void)sendQueryQQGroupProInfo:(QQBaseReq *)req resultBlock:(sendResultBlock)resultBlock;
eec5d6 132
L 133 /**
134  向手Q发起组图分享到表情收藏
135  \param req 分享内容的请求
136  \return 请求发送结果码
137  */
138 + (QQApiSendResultCode)sendMessageToFaceCollectionWithReq:(QQBaseReq*)req;
139
140 /**
141  检测是否已安装QQ
142  \return 如果QQ已安装则返回YES,否则返回NO
143
144  \note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
145  只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
146  第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
147  */
148 + (BOOL)isQQInstalled;
149
150 /**
151  检测是否已安装TIM
152  \return 如果TIM已安装则返回YES,否则返回NO
153  
154  \note SDK目前已经支持QQ、TIM授权登录及分享功能, 会按照QQ>TIM的顺序进行调用。
155  只要用户安装了QQ、TIM中任意一个应用,都可为第三方应用进行授权登录、分享功能。
156  第三方应用在接入SDK时不需要判断是否安装QQ、TIM。若有判断安装QQ、TIM的逻辑建议移除。
157  */
158 + (BOOL)isTIMInstalled;
159
160 /**
161  检测QQ是否支持API调用
162  \return 如果当前安装QQ版本支持API调用则返回YES,否则返回NO
163  */  
164 + (BOOL)isQQSupportApi;
165
166 /**
167  检测TIM是否支持API调用
168  \return 如果当前安装TIM版本支持API调用则返回YES,否则返回NO
169  */
170 + (BOOL)isTIMSupportApi __attribute__((deprecated("已过期, 建议删除调用,调用地方用YES替代。")));
171
172 /**
173  检测是否支持分享
174  \return 如果当前已安装QQ且QQ版本支持API调用 或者 当前已安装TIM且TIM版本支持API调用则返回YES,否则返回NO
175  */
176 + (BOOL)isSupportShareToQQ;
177
178 /**
179  检测是否支持分享到QQ结合版QZone
180  \return 如果当前已安装QQ且QQ版本支持API调用则返回YES,否则返回NO
181  */
182 + (BOOL)isSupportPushToQZone;
183
184 /**
185  启动QQ
186  \return 成功返回YES,否则返回NO
187  */
188 + (BOOL)openQQ;
189
190 /**
191  启动TIM
192  \return 成功返回YES,否则返回NO
193  */
194 + (BOOL)openTIM;
195
196 /**
197  获取QQ下载地址
198  
199  如果App通过<code>QQApiInterface#isQQInstalled</code>和<code>QQApiInterface#isQQSupportApi</code>检测发现QQ没安装或当前版本QQ不支持API调用,可引导用户通过打开此链接下载最新版QQ。
200  \return iPhoneQQ下载地址
201  */
202 + (NSString *)getQQInstallUrl;
203
204 /**
205  获取TIM下载地址
206  
207  如果App通过<code>QQApiInterface#isTIMInstalled</code>检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。
208  \return iPhoneTIM下载地址
209  */
210 + (NSString *)getTIMInstallUrl;
8822d6 211
L 212 #pragma mark - Log
7acec9 213
8822d6 214 /*! @brief 调用此函数可以导出QQSDK的Log到第三方中,用于定位问题
L 215  
216     注意1:SDK会强引用这个block,注意不要导致内存泄漏,注意不要导致内存泄漏
217     注意2:调用过一次startLog by block之后,如果再调用一次任意方式的startLoad,会释放上一次logBlock,不再回调上一个logBlock
218  *
219  *  @param logBlock 打印log的回调block
220  */
221 + (void)startLogWithBlock:(QQApiLogBolock)logBlock;
7acec9 222
8822d6 223 ///停止回调打印
L 224 + (void)stopLog;
7acec9 225
8822d6 226 ///设置打印日志到文件开关on/off,如果不设置,默认不打印到文件
L 227 + (void)setSwitchPrintLogToFile:(BOOL)on;
7acec9 228
8822d6 229 ///日志文件目录
7acec9 230 + (NSString *)getLogFilePath;
L 231
eec5d6 232 @end