gpt4 book ai didi

IOS10 远程推送适配详细介绍

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章IOS10 远程推送适配详细介绍由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

IOS10 远程推送适配 。

iOS10推送新增了UserNotifications Framework,使用起来其实很简单.

建议看看极光推送的Demo,里面写的更详细.

只是在iOS10以上系统上点击通知栏,回调方法不再走原来的这两个方法 。

?
1
2
3
4
5
- ( void )application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo {}
- ( void )application:(UIApplication *)application
  didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:( void (^)(UIBackgroundFetchResult))completionHandler {}

而是在前台的时候回调 。

?
1
2
3
4
- ( void )userNotificationCenter:(UNUserNotificationCenter *)center
willPresentNotification:(UNNotification *)notification
withCompletionHandler:( void (^)
(UNNotificationPresentationOptions))completionHandler

从后台进入的时候回调 。

?
1
2
3
- ( void )userNotificationCenter:(UNUserNotificationCenter *)center
  didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:( void (^)())completionHandler

直接说怎么用吧:

1,导入头文件 。

?
1
2
3
#ifdef NSFoundationVersionNumber_iOS_9_x_Max
#import <UserNotifications/UserNotifications.h>
#endif

2,注册通知 。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
if (iOS10) {
   UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
   center.delegate = self;
   [center requestAuthorizationWithOptions:(UNAuthorizationOptionBadge
| UNAuthorizationOptionSound | UNAuthorizationOptionAlert)
completionHandler:^( BOOL granted, NSError * _Nullable error) {
    if (!error) {
     NSLog(@ "succeeded!" );
    }
   }];
  } else if (iOS8_9){ //iOS8-iOS9
   UIUserNotificationSettings *settings = [UIUserNotificationSettings
settingsForTypes:(UIUserNotificationTypeBadge | UIUserNotificationTypeAlert
| UIUserNotificationTypeSound) categories:nil];
   [application registerUserNotificationSettings:settings];
   [application registerForRemoteNotifications];
  } else { //iOS8以下
   [application registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge
  | UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeSound];
  }

3,回调方法中,获取通知数据 。

?
1
2
3
4
5
6
7
8
9
10
11
- ( void )userNotificationCenter:(UNUserNotificationCenter *)center
didReceiveNotificationResponse:(UNNotificationResponse *)response
withCompletionHandler:( void (^)())completionHandler {
  NSDictionary *userInfo = response.notification.request.content.userInfo;
     //消息处理
  if ([request.trigger isKindOfClass:[UNPushNotificationTrigger class ]]) {
   //判断为远程推送
  } else {
   // 判断为本地通知
  }
}

4,对于本地通知没有什么变化依然会回调 。

?
1
2
-( void )application:(UIApplication *)application
didReceiveLocalNotification:(UILocalNotification *)notification

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! 。

原文链接:http://blog.csdn.net/youshaoduo/article/details/53517210 。

最后此篇关于IOS10 远程推送适配详细介绍的文章就讲到这里了,如果你想了解更多关于IOS10 远程推送适配详细介绍的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com