酷店

MiPushSDK.h 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. //
  2. // MiPushSDK.h
  3. // MiPushSDK
  4. //
  5. // Created by shen yang on 14-3-6.
  6. // Copyright (c) 2014年 Xiaomi. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import <UserNotifications/UserNotifications.h>
  11. @protocol MiPushSDKDelegate <NSObject>
  12. @optional
  13. /**
  14. * MiPushSDK 请求结果回调
  15. *
  16. * MiPushSDK的所有请求的为异步操作, 用户需监听此方法.
  17. *
  18. * @param
  19. * selector: 请求的方法
  20. * data: 返回结果字典
  21. */
  22. - (void)miPushRequestSuccWithSelector:(NSString *)selector data:(NSDictionary *)data;
  23. - (void)miPushRequestErrWithSelector:(NSString *)selector error:(int)error data:(NSDictionary *)data;
  24. /**
  25. * 启用长连接后, 当收到消息是就会回调此方法
  26. *
  27. * @param
  28. * type: 消息类型
  29. * data: 返回结果字典, 跟apns的消息格式一样
  30. */
  31. - (void)miPushReceiveNotification:(NSDictionary*)data;
  32. @end
  33. @interface MiPushSDK : NSObject
  34. /**
  35. * 客户端注册设备
  36. * @param
  37. * delegate: 回调函数
  38. * type: apns推送类型. (Badge, Alert, Sound)
  39. * connect: 是否启动长连接, 它跟APNSs是不同的通道(不管是否启动系统推送, app在前台都可以收到在线或离线消息)
  40. */
  41. + (void)registerMiPush:(id<MiPushSDKDelegate, UNUserNotificationCenterDelegate>)delegate;
  42. + (void)registerMiPush:(id<MiPushSDKDelegate, UNUserNotificationCenterDelegate>)delegate type:(UIRemoteNotificationType)type;
  43. + (void)registerMiPush:(id<MiPushSDKDelegate, UNUserNotificationCenterDelegate>)delegate type:(UIRemoteNotificationType)type connect:(BOOL)connect;
  44. /**
  45. * 客户端设备注销
  46. */
  47. + (void)unregisterMiPush;
  48. /**
  49. * 绑定 PushDeviceToken
  50. *
  51. * NOTE: 有时Apple会重新分配token, 所以为保证消息可达,
  52. * 必须在系统application:didRegisterForRemoteNotificationsWithDeviceToken:回调中,
  53. * 重复调用此方法. SDK内部会处理是否重新上传服务器.
  54. *
  55. * @param
  56. * deviceToken: AppDelegate中,PUSH注册成功后,
  57. * 系统回调didRegisterForRemoteNotificationsWithDeviceToken
  58. */
  59. + (void)bindDeviceToken:(NSData *)deviceToken;
  60. /**
  61. * 当同时启动APNs与内部长连接时, 把两处收到的消息合并. 通过miPushReceiveNotification返回
  62. */
  63. + (void)handleReceiveRemoteNotification:(NSDictionary*)userInfo;
  64. /**
  65. * 客户端设置别名
  66. *
  67. * @param
  68. * alias: 别名 (length:128)
  69. */
  70. + (void)setAlias:(NSString *)alias;
  71. /**
  72. * 客户端取消别名
  73. *
  74. * @param
  75. * alias: 别名 (length:128)
  76. */
  77. + (void)unsetAlias:(NSString *)alias;
  78. /**
  79. * 客户端设置帐号
  80. * 多设备设置同一个帐号, 发送消息时多设备可以同时收到
  81. *
  82. * @param
  83. * account: 帐号 (length:128)
  84. */
  85. + (void)setAccount:(NSString *)account;
  86. /**
  87. * 客户端取消帐号
  88. *
  89. * @param
  90. * account: 帐号 (length:128)
  91. */
  92. + (void)unsetAccount:(NSString *)account;
  93. /**
  94. * 客户端设置主题
  95. * 支持同时设置多个topic, 中间使用","分隔
  96. *
  97. * @param
  98. * subscribe: 主题类型描述
  99. */
  100. + (void)subscribe:(NSString *)topics;
  101. /**
  102. * 客户端取消主题
  103. * 支持同时设置多个topic, 中间使用","分隔
  104. *
  105. * @param
  106. * subscribe: 主题类型描述
  107. */
  108. + (void)unsubscribe:(NSString *)topics;
  109. /**
  110. * 统计客户端 通过push开启app行为
  111. * 如果, 你想使用服务器帮你统计你app的点击率请自行调用此方法
  112. * 方法放到:application:didReceiveRemoteNotification:回调中.
  113. * @param
  114. * messageId:Payload里面对应的miid参数
  115. */
  116. + (void)openAppNotify:(NSString *)messageId;
  117. /**
  118. * NOTE 废弃. 请使用getAllAliasAsync替换
  119. * 获取客户端所有设置的别名
  120. */
  121. + (NSArray*)getAllAlias __deprecated;
  122. /**
  123. * 获取客户端所有设置的别名
  124. */
  125. + (void)getAllAliasAsync;
  126. /**
  127. * NOTE 废弃. 请使用getAllTopicAsync替换
  128. * 获取客户端所有订阅的主题
  129. */
  130. + (NSArray*)getAllTopic __deprecated;
  131. /**
  132. * 获取客户端所有订阅的主题
  133. */
  134. + (void)getAllTopicAsync;
  135. + (void)getAllAccountAsync;
  136. /**
  137. * 获取SDK版本号
  138. */
  139. + (NSString*)getSDKVersion;
  140. /**
  141. * 获取RegId
  142. * 如果没有RegId返回nil
  143. */
  144. + (NSString*)getRegId;
  145. @end