推送
29.简单描述一下推送的过程。本地推送和远程推送有什么区别?
1首先是应用程序注册消息推送。
2IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
3应用程序将deviceToken发送给PUSH服务端程序(Provider)。
4服务端程序向APNS服务发送消息。
5APNS服务将消息发送给iPhone应用程序。
本地通知(仅在iOS中有效)适用于基于时间的程序,包括简单的日历程序或者to-dolist类型的应用程序。那些在有限周期内运行的由iOS许可的后台程序也能够接收到本地通知。例如,依赖于服务器消息或数据的应用程序,能够在后台运行并查询服务器最新的数据;如果有消息要显示或者有更新需要下载,它们立即会显示一个本地通知以通知用户。
远程:从远程服务器推送给客户端的通知(需要联网),从服务器发送了一个通知,接收到通知以后做的和本地通知类似的事情,这个通知只不过是从远方的服务器传过来的,要做的这个远程推送通知是由远程推送服务,又称为APNs(Apple Push Notification Services:苹果推送通知服务),苹果给我们提供了这个服务就可以做远程推送服务了.
7、极光推送,点击进入相应界面,如何实现?
-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler {
// IOS 7 Support Required
[APService handleRemoteNotification:userInfo];
completionHandler(UIBackgroundFetchResultNewData);
当用户通过点击通知消息进入应用时
- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
launchOptions中会有推送消息的userInfo信息,此时我们可以通过
NSDictionary* remoteNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
获得推送消息内容。如果remoteNotification不为空,则说明用户通过推送消息进入,那么可以声明一个属性
@property (nonatomic) BOOL isLaunchedByNotification;
用于标识用户是否通过点击通知消息进入本应用。
此时,
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo
一定会被调用,iOS7可以使用
- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary*)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
因为此方法的调用时,MainViewController已经被初始化,所以我们已经可以在MainViewController注册推送消息的监听,用于展示对应的视图,如下:
//订阅展示视图消息,将直接打开某个分支视图
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(presentView:) name:@"PresentView" object:nil];
//弹出消息框提示用户有订阅通知消息。主要用于用户在使用应用时,弹出提示框
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showNotification:) name:@"Notification" object:nil];
所以在AppDelegate的didReceiveRemoteNotification中可以通过判断isLaunchedByNotification来通知不同的展示方法。
}
7、How to implement push notification in an app?(please provide program segments)
推送的话,首先要创建推送证书,然后需要在工程的AppDelegate中注册远程通知,然后在代理中接受返回的device_token,发送给后台。
把P12证书给后台一份,如果后台没有MAC电脑的话,在终端中把p12证书导出两个文件给后台,具体操作网上可以查到
还可以集成XMPP实现推送的功能。
推送的原理:
1、首先是应用程序注册消息推送。
2、IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
3、应用程序将deviceToken发送给PUSH服务端程序。
4、 服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。
9.推送功能怎么实现
推送的话,首先要创建推送证书,然后需要在工程的AppDelegate中注册远程通知,然后在代理中接受返回的device_token,发送给后台。
把P12证书给后台一份,如果后台没有MAC电脑的话,在终端中把p12证书导出两个文件给后台,具体操作网上可以查到
还可以集成XMPP实现推送的功能。
推送的原理:
1、首先是应用程序注册消息推送。
2、IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
3、应用程序将deviceToken发送给PUSH服务端程序。
4、 服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。
2推送通知,怎么根据不同客户接收到不同的推送消息,按照不同的客户群体收到不同的推送通知.
APP只管集成推送,具体推送给谁是后台决定的,后台根据app注册的DeviceToken推送给具体的人,根据创建工程的BundelIdentifier把消息推送到指定的手机的app.
�" >)���m��}