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 |
|
|
187 |
如果App通过<code>QQApiInterface#isQQInstalled</code>和<code>QQApiInterface#isQQSupportApi</code>检测发现QQ没安装或当前版本QQ不支持API调用,可引导用户通过打开此链接下载最新版QQ。 |
|
188 |
\return iPhoneQQ下载地址 |
|
189 |
*/ |
|
190 |
+ (NSString *)getQQInstallUrl; |
|
191 |
|
|
192 |
/** |
|
193 |
获取TIM下载地址 |
|
194 |
|
|
195 |
如果App通过<code>QQApiInterface#isTIMInstalled</code>检测发现TIM没安装或当前版本TIM不支持API调用,可引导用户通过打开此链接下载最新版TIM。 |
|
196 |
\return iPhoneTIM下载地址 |
|
197 |
*/ |
|
198 |
+ (NSString *)getTIMInstallUrl; |
8822d6
|
199 |
|
L |
200 |
#pragma mark - Log |
7acec9
|
201 |
|
8822d6
|
202 |
/*! @brief 调用此函数可以导出QQSDK的Log到第三方中,用于定位问题 |
L |
203 |
|
|
204 |
注意1:SDK会强引用这个block,注意不要导致内存泄漏,注意不要导致内存泄漏 |
|
205 |
注意2:调用过一次startLog by block之后,如果再调用一次任意方式的startLoad,会释放上一次logBlock,不再回调上一个logBlock |
|
206 |
* |
|
207 |
* @param logBlock 打印log的回调block |
|
208 |
*/ |
|
209 |
+ (void)startLogWithBlock:(QQApiLogBolock)logBlock; |
7acec9
|
210 |
|
8822d6
|
211 |
///停止回调打印 |
L |
212 |
+ (void)stopLog; |
7acec9
|
213 |
|
8822d6
|
214 |
///设置打印日志到文件开关on/off,如果不设置,默认不打印到文件 |
L |
215 |
+ (void)setSwitchPrintLogToFile:(BOOL)on; |
7acec9
|
216 |
|
8822d6
|
217 |
///日志文件目录 |
7acec9
|
218 |
+ (NSString *)getLogFilePath; |
L |
219 |
|
eec5d6
|
220 |
@end |