1+ //
2+ // XGPush.h
3+ // XG-SDK
4+ //
5+ // Created by xiangchen on 13-10-18.
6+ // Copyright (c) 2013年 mta. All rights reserved.
7+ //
8+
9+ #import < Foundation/Foundation.h>
10+ #import < UIKit/UIKit.h>
11+
12+ #define XG_SDK_VERSION @" 2.4.0"
13+
14+ @interface XGPush : NSObject
15+
16+ /* *
17+ * 初始化信鸽
18+ * @param appId - 通过前台申请的应用ID
19+ * @param appKey - 通过前台申请的appKey
20+ * @return none
21+ */
22+ +(void )startApp : (uint32_t )appId appKey : (NSString *)appKey ;
23+
24+ /* *
25+ * 如果注销过信鸽,需要再次注册push服务前的准备
26+ * @param successCallback 初始化之后的回调,如果需要即刻恢复push服务,registerPush在此回调中调用
27+ * @return none
28+ */
29+ +(void )initForReregister : (void (^)(void )) successCallback ;
30+
31+ /* *
32+ * 判断当前是否是已注销状态
33+ * @param none
34+ * @return none
35+ */
36+ +(BOOL )isUnRegisterStatus ;
37+
38+ /* *
39+ * 设置设备的帐号 (在初始化信鸽后,注册设备之前调用。account本质上是registerDevice的一个参数)
40+ * @param account - 帐号名(长度为2个字节以上,不要使用"test","123456"这种过于简单的字符串)
41+ * @return none
42+ */
43+ +(void )setAccount : (NSString *)account ;
44+
45+ /* *
46+ * 注册设备
47+ * @param deviceToken - 通过app delegate的didRegisterForRemoteNotificationsWithDeviceToken回调的获取
48+ * @return 获取的deviceToken字符串
49+ */
50+ +(NSString *)registerDevice : (NSData *)deviceToken ;
51+
52+ // 注册设备,支持回调函数版本
53+ +(NSString *)registerDevice : (NSData *)deviceToken successCallback : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback ;
54+
55+ // 注册设备,支持字符串deviceToken版本
56+ +(NSString *)registerDeviceStr : (NSString *)deviceToken ;
57+
58+ /* *
59+ * 注销设备,设备不再进行推送
60+ * @param none
61+ * @return none
62+ */
63+ +(void )unRegisterDevice ;
64+
65+ // 注销设备,支持回调版本
66+ +(void )unRegisterDevice : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback ;
67+
68+ /* *
69+ * 设置tag
70+ * @param tag - 需要设置的tag
71+ * @return none
72+ */
73+ +(void )setTag : (NSString *)tag ;
74+
75+ // 设置tag,支持回调版本
76+ +(void )setTag : (NSString *)tag successCallback : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback ;
77+
78+ /* *
79+ * 删除tag
80+ * @param tag - 需要删除的tag
81+ * @return none
82+ */
83+ +(void )delTag : (NSString *)tag ;
84+
85+ // 删除tag,支持回调版本
86+ +(void )delTag : (NSString *)tag successCallback : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback ;
87+
88+ /* *
89+ * 在didReceiveRemoteNotification中调用,用于推送反馈。(app在运行时)
90+ * @param userInfo 苹果apns的推送信息
91+ * @return none
92+ */
93+ +(void )handleReceiveNotification : (NSDictionary *)userInfo ;
94+
95+ // 信鸽Pro专用接口
96+ +(void )handleReceiveNotification : (NSDictionary *)userInfo completion : (void (^)(void )) completion ;
97+
98+ // 推送反馈(app在运行时),支持回调版本
99+ +(void )handleReceiveNotification : (NSDictionary *)userInfo successCallback : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback completion : (void (^)(void )) completion ;
100+
101+ /* *
102+ * 在didFinishLaunchingWithOptions中调用,用于推送反馈.(app没有运行时,点击推送启动时)
103+ * @param userInfo
104+ * @return none
105+ */
106+ +(void )handleLaunching : (NSDictionary *)launchOptions ;
107+
108+ // 推送反馈.(app没有运行时,点击推送启动时),支持回调版本
109+ +(void )handleLaunching : (NSDictionary *)launchOptions successCallback : (void (^)(void )) successCallback errorCallback : (void (^)(void )) errorCallback ;
110+
111+ /* *
112+ * 获取userInfo里的bid信息(bid:信鸽的推送消息id)
113+ * @param userInfo 苹果apns的推送信息
114+ * @return none
115+ */
116+ +(NSString *)getBid : (NSDictionary *)userInfo ;
117+
118+ /* *
119+ * deviceToken类型转换
120+ * @param deviceToken NSData格式的deviceToken
121+ * @return none
122+ */
123+ +(NSString *)getDeviceToken : (NSData *)deviceToken ;
124+
125+ /* *
126+ * 获取本地缓存的deviceToken
127+ * @param none
128+ * @return 信鸽启动时填入的的accessID
129+ */
130+ +(uint32_t )getAccessID ;
131+
132+ /* *************************
133+ 以下是本地推送相关
134+ **************************/
135+
136+ /* *
137+ * 本地推送,最多支持64个
138+ * @param fireDate 本地推送触发的时间
139+ * @param alertBody 推送的内容
140+ * @param badge 角标的数字。如果不改变,则传递 -1
141+ * @param alertAction 替换弹框的按钮文字内容(默认为"启动")
142+ * @param userInfo 自定义参数,可以用来标识推送和增加附加信息
143+ * @return none
144+ */
145+ +(void )localNotification : (NSDate *)fireDate alertBody : (NSString *)alertBody badge : (int )badge alertAction : (NSString *)alertAction userInfo : (NSDictionary *)userInfo ;
146+
147+ /* *
148+ * 本地推送在前台推送。默认App在前台运行时不会进行弹窗,通过此接口可实现指定的推送弹窗。
149+ * @param notification 本地推送对象
150+ * @param userInfoKey 本地推送的标识Key
151+ * @param userInfoValue 本地推送的标识Key对应的值
152+ * @return none
153+ */
154+ +(void )localNotificationAtFrontEnd : (UILocalNotification *)notification userInfoKey : (NSString *)userInfoKey userInfoValue : (NSString *)userInfoValue ;
155+
156+ /* *
157+ * 删除本地推送,方法1
158+ * @param userInfoKey 本地推送的标识Key
159+ * @param userInfoValue 本地推送的标识Key对应的值
160+ * @return none
161+ */
162+ +(void )delLocalNotification : (NSString *)userInfoKey userInfoValue : (NSString *)userInfoValue ;
163+
164+ /* *
165+ * 删除本地推送,方法2
166+ * @param myUILocalNotification 本地推送对象
167+ * @return none
168+ */
169+ +(void )delLocalNotification : (UILocalNotification *)myUILocalNotification ;
170+
171+ /* *
172+ * 清除所有本地推送对象
173+ * @param none
174+ * @return none
175+ */
176+ +(void )clearLocalNotifications ;
177+
178+ @end
0 commit comments