WXApi.h 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. //
  2. // WXApi.h
  3. // 所有Api接口
  4. //
  5. // Created by Wechat on 12-2-28.
  6. // Copyright (c) 2012年 Tencent. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import "WXApiObject.h"
  10. #pragma mark - WXApiDelegate
  11. /*! @brief 接收并处理来自微信终端程序的事件消息
  12. *
  13. * 接收并处理来自微信终端程序的事件消息,期间微信界面会切换到第三方应用程序。
  14. * WXApiDelegate 会在handleOpenURL:delegate:中使用并触发。
  15. */
  16. @protocol WXApiDelegate <NSObject>
  17. @optional
  18. /*! @brief 收到一个来自微信的请求,第三方应用程序处理完后调用sendResp向微信发送结果
  19. *
  20. * 收到一个来自微信的请求,异步处理完成后必须调用sendResp发送处理结果给微信。
  21. * 可能收到的请求有GetMessageFromWXReq、ShowMessageFromWXReq等。
  22. * @param req 具体请求内容,是自动释放的
  23. */
  24. -(void) onReq:(BaseReq*)req;
  25. /*! @brief 发送一个sendReq后,收到微信的回应
  26. *
  27. * 收到一个来自微信的处理结果。调用一次sendReq后会收到onResp。
  28. * 可能收到的处理结果有SendMessageToWXResp、SendAuthResp等。
  29. * @param resp具体的回应内容,是自动释放的
  30. */
  31. -(void) onResp:(BaseResp*)resp;
  32. @end
  33. #pragma mark - WXApi
  34. /*! @brief 微信Api接口函数类
  35. *
  36. * 该类封装了微信终端SDK的所有接口
  37. */
  38. @interface WXApi : NSObject
  39. /*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
  40. *
  41. * 需要在每次启动第三方应用程序时调用。第一次调用后,会在微信的可用应用列表中出现。
  42. * iOS7及以上系统需要调起一次微信才会出现在微信的可用应用列表中。
  43. * @attention 请保证在主线程中调用此函数
  44. * @param appid 微信开发者ID
  45. * @param typeFlag 应用支持打开的文件类型
  46. * @return 成功返回YES,失败返回NO。
  47. */
  48. +(BOOL) registerApp:(NSString *)appid;
  49. /*! @brief WXApi的成员函数,向微信终端程序注册第三方应用。
  50. *
  51. * 需要在每次启动第三方应用程序时调用。第一次调用后,会在微信的可用应用列表中出现。
  52. * @see registerApp
  53. * @param appid 微信开发者ID
  54. * @param appdesc 应用附加信息,长度不超过1024字节
  55. * @return 成功返回YES,失败返回NO。
  56. */
  57. +(BOOL) registerApp:(NSString *)appid withDescription:(NSString *)appdesc;
  58. /*! @brief WXApi的成员函数,向微信终端程序注册应用支持打开的文件类型。
  59. *
  60. * 需要在每次启动第三方应用程序时调用。调用后并第一次成功分享数据到微信后,会在微信的可用应用列表中出现。
  61. * @see registerApp
  62. * @param typeFlag 应用支持打开的数据类型, enAppSupportContentFlag枚举类型 “|” 操作后结果
  63. */
  64. +(void) registerAppSupportContentFlag:(UInt64)typeFlag;
  65. /*! @brief 处理微信通过URL启动App时传递的数据
  66. *
  67. * 需要在 application:openURL:sourceApplication:annotation:或者application:handleOpenURL中调用。
  68. * @param url 微信启动第三方应用时传递过来的URL
  69. * @param delegate WXApiDelegate对象,用来接收微信触发的消息。
  70. * @return 成功返回YES,失败返回NO。
  71. */
  72. +(BOOL) handleOpenURL:(NSURL *) url delegate:(id<WXApiDelegate>) delegate;
  73. /*! @brief 检查微信是否已被用户安装
  74. *
  75. * @return 微信已安装返回YES,未安装返回NO。
  76. */
  77. +(BOOL) isWXAppInstalled;
  78. /*! @brief 判断当前微信的版本是否支持OpenApi
  79. *
  80. * @return 支持返回YES,不支持返回NO。
  81. */
  82. +(BOOL) isWXAppSupportApi;
  83. /*! @brief 获取微信的itunes安装地址
  84. *
  85. * @return 微信的安装地址字符串。
  86. */
  87. +(NSString *) getWXAppInstallUrl;
  88. /*! @brief 获取当前微信SDK的版本号
  89. *
  90. * @return 返回当前微信SDK的版本号
  91. */
  92. +(NSString *) getApiVersion;
  93. /*! @brief 打开微信
  94. *
  95. * @return 成功返回YES,失败返回NO。
  96. */
  97. +(BOOL) openWXApp;
  98. /*! @brief 发送请求到微信,等待微信返回onResp
  99. *
  100. * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持以下类型
  101. * SendAuthReq、SendMessageToWXReq、PayReq等。
  102. * @param req 具体的发送请求,在调用函数后,请自己释放。
  103. * @return 成功返回YES,失败返回NO。
  104. */
  105. +(BOOL) sendReq:(BaseReq*)req;
  106. /*! @brief 发送Auth请求到微信,支持用户没安装微信,等待微信返回onResp
  107. *
  108. * 函数调用后,会切换到微信的界面。第三方应用程序等待微信返回onResp。微信在异步处理完成后一定会调用onResp。支持SendAuthReq类型。
  109. * @param req 具体的发送请求,在调用函数后,请自己释放。
  110. * @param viewController 当前界面对象。
  111. * @param delegate WXApiDelegate对象,用来接收微信触发的消息。
  112. * @return 成功返回YES,失败返回NO。
  113. */
  114. +(BOOL) sendAuthReq:(SendAuthReq*)req viewController:(UIViewController*)viewController delegate:(id<WXApiDelegate>)delegate;
  115. /*! @brief 收到微信onReq的请求,发送对应的应答给微信,并切换到微信界面
  116. *
  117. * 函数调用后,会切换到微信的界面。第三方应用程序收到微信onReq的请求,异步处理该请求,完成后必须调用该函数。可能发送的相应有
  118. * GetMessageFromWXResp、ShowMessageFromWXResp等。
  119. * @param resp 具体的应答内容,调用函数后,请自己释放
  120. * @return 成功返回YES,失败返回NO。
  121. */
  122. +(BOOL) sendResp:(BaseResp*)resp;
  123. @end