forked from github/jpush-phonegap-plugin
176 lines
6.5 KiB
Objective-C
176 lines
6.5 KiB
Objective-C
//
|
||
// APService.h
|
||
// APService
|
||
//
|
||
// Created by JPush on 12-8-15.
|
||
// Copyright (c) 2012年 HXHG. All rights reserved.
|
||
// Version: 1.8.8
|
||
|
||
@class CLRegion;
|
||
@class UILocalNotification;
|
||
|
||
extern NSString *const kJPFNetworkDidSetupNotification; // 建立连接
|
||
extern NSString *const kJPFNetworkDidCloseNotification; // 关闭连接
|
||
extern NSString *const kJPFNetworkDidRegisterNotification; // 注册成功
|
||
extern NSString *const kJPFNetworkDidLoginNotification; // 登录成功
|
||
extern NSString *const
|
||
kJPFNetworkDidReceiveMessageNotification; // 收到消息(非APNS)
|
||
extern NSString *const kJPFServiceErrorNotification; // 错误提示
|
||
|
||
@class CLLocation;
|
||
@interface APService : NSObject
|
||
|
||
#pragma - mark 基本功能
|
||
// 以下四个接口是必须调用的
|
||
+ (void)setupWithOption:(NSDictionary *)launchingOption; // 初始化
|
||
+ (void)registerForRemoteNotificationTypes:(NSUInteger)types
|
||
categories:(NSSet *)categories; // 注册APNS类型
|
||
+ (void)registerDeviceToken:(NSData *)deviceToken; // 向服务器上报Device Token
|
||
+ (void)handleRemoteNotification:(NSDictionary *)
|
||
remoteInfo; // 处理收到的APNS消息,向服务器上报收到APNS消息
|
||
|
||
// 下面的接口是可选的
|
||
// 设置标签和(或)别名(若参数为nil,则忽略;若是空对象,则清空;详情请参考文档:http://docs.jpush.cn/pages/viewpage.action?pageId=3309913)
|
||
+ (void)setTags:(NSSet *)tags
|
||
alias:(NSString *)alias
|
||
callbackSelector:(SEL)cbSelector
|
||
target:(id)theTarget;
|
||
+ (void)setTags:(NSSet *)tags
|
||
alias:(NSString *)alias
|
||
callbackSelector:(SEL)cbSelector
|
||
object:(id)theTarget;
|
||
+ (void)setTags:(NSSet *)tags
|
||
callbackSelector:(SEL)cbSelector
|
||
object:(id)theTarget;
|
||
+ (void)setAlias:(NSString *)alias
|
||
callbackSelector:(SEL)cbSelector
|
||
object:(id)theTarget;
|
||
// 用于过滤出正确可用的tags,如果总数量超出最大限制则返回最大数量的靠前的可用tags
|
||
+ (NSSet *)filterValidTags:(NSSet *)tags;
|
||
|
||
#pragma - mark 上报日志
|
||
/**
|
||
* 记录页面停留时间功能。
|
||
* startLogPageView和stopLogPageView为自动计算停留时间
|
||
* beginLogPageView为手动自己输入停留时间
|
||
*
|
||
* @param pageName 页面名称
|
||
* @param seconds 页面停留时间
|
||
*/
|
||
+ (void)startLogPageView:(NSString *)pageName;
|
||
+ (void)stopLogPageView:(NSString *)pageName;
|
||
+ (void)beginLogPageView:(NSString *)pageName duration:(int)seconds;
|
||
|
||
/**
|
||
* 开启Crash日志收集, 默认是关闭状态.
|
||
*/
|
||
+ (void)crashLogON;
|
||
|
||
/**
|
||
* 地理位置设置
|
||
* 为了更精确的统计用户地理位置,可以调用此方法传入经纬度信息
|
||
* 需要链接 CoreLocation.framework 并且 #import <CoreLocation/CoreLocation.h>
|
||
* @param latitude 纬度.
|
||
* @param longitude 经度.
|
||
* @param location 直接传递CLLocation *型的地理信息
|
||
*/
|
||
+ (void)setLatitude:(double)latitude longitude:(double)longitude;
|
||
+ (void)setLocation:(CLLocation *)location;
|
||
|
||
#pragma - mark 本地通知
|
||
/**
|
||
* 本地推送,最多支持64个
|
||
* @param fireDate 本地推送触发的时间
|
||
* @param alertBody 本地推送需要显示的内容
|
||
* @param badge 角标的数字。如果不需要改变角标传-1
|
||
* @param alertAction 弹框的按钮显示的内容(IOS 8默认为"打开",其他默认为"启动")
|
||
* @param notificationKey 本地推送标示符
|
||
* @param userInfo 自定义参数,可以用来标识推送和增加附加信息
|
||
* @param soundName 自定义通知声音,设置为nil为默认声音
|
||
|
||
* IOS8新参数
|
||
* @param region 自定义参数
|
||
* @param regionTriggersOnce 自定义参数
|
||
* @param category 自定义参数
|
||
*/
|
||
+ (UILocalNotification *)setLocalNotification:(NSDate *)fireDate
|
||
alertBody:(NSString *)alertBody
|
||
badge:(int)badge
|
||
alertAction:(NSString *)alertAction
|
||
identifierKey:(NSString *)notificationKey
|
||
userInfo:(NSDictionary *)userInfo
|
||
soundName:(NSString *)soundName;
|
||
|
||
+ (UILocalNotification *)setLocalNotification:(NSDate *)fireDate
|
||
alertBody:(NSString *)alertBody
|
||
badge:(int)badge
|
||
alertAction:(NSString *)alertAction
|
||
identifierKey:(NSString *)notificationKey
|
||
userInfo:(NSDictionary *)userInfo
|
||
soundName:(NSString *)soundName
|
||
region:(CLRegion *)region
|
||
regionTriggersOnce:(BOOL)regionTriggersOnce
|
||
category:(NSString *)category
|
||
NS_AVAILABLE_IOS(8_0);
|
||
|
||
/**
|
||
* 本地推送在前台推送。默认App在前台运行时不会进行弹窗,在程序接收通知调用此接口可实现指定的推送弹窗。
|
||
* @param notification 本地推送对象
|
||
* @param notificationKey 需要前台显示的本地推送通知的标示符
|
||
*/
|
||
+ (void)showLocalNotificationAtFront:(UILocalNotification *)notification
|
||
identifierKey:(NSString *)notificationKey;
|
||
/**
|
||
* 删除本地推送
|
||
* @param notificationKey 本地推送标示符
|
||
* @param myUILocalNotification 本地推送对象
|
||
*/
|
||
+ (void)deleteLocalNotificationWithIdentifierKey:(NSString *)notificationKey;
|
||
+ (void)deleteLocalNotification:(UILocalNotification *)localNotification;
|
||
|
||
/**
|
||
* 获取指定通知
|
||
* @param notificationKey 本地推送标示符
|
||
* @return 本地推送对象数组,[array count]为0时表示没找到
|
||
*/
|
||
+ (NSArray *)findLocalNotificationWithIdentifier:(NSString *)notificationKey;
|
||
|
||
/**
|
||
* 清除所有本地推送对象
|
||
*/
|
||
+ (void)clearAllLocalNotifications;
|
||
|
||
#pragma - mark 设置Badge
|
||
/**
|
||
* set setBadge
|
||
* @param value 设置JPush服务器的badge的值
|
||
* 本地仍须调用UIApplication:setApplicationIconBadgeNumber函数,来设置脚标
|
||
*/
|
||
+ (BOOL)setBadge:(NSInteger)value;
|
||
/**
|
||
* set setBadge
|
||
* @param value 清除JPush服务器对badge值的设定.
|
||
* 本地仍须调用UIApplication:setApplicationIconBadgeNumber函数,来设置脚标
|
||
*/
|
||
|
||
+ (void)resetBadge;
|
||
|
||
/**
|
||
* get RegistrationID
|
||
*/
|
||
+ (NSString *)registrationID;
|
||
|
||
#pragma - mark 打印日志信息配置
|
||
/**
|
||
* setDebugMode获取更多的Log信息
|
||
* 开发过程中建议开启DebugMode
|
||
*
|
||
* setLogOFF关闭除了错误信息外的所有Log
|
||
* 发布时建议开启LogOFF用于节省性能开销
|
||
*
|
||
* 默认为不开启DebugLog,只显示基本的信息
|
||
*/
|
||
+ (void)setDebugMode;
|
||
+ (void)setLogOFF;
|
||
@end
|