QQApiInterface.h 4.5 KB

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