iOS 10 适配的那些坑

一、权限问题

解决非常简单 在工程中的info.plist文件中添加响应属性即可,如下图

麦克风权限:Privacy - Microphone Usage Description
相机权限: Privacy - Camera Usage Description
相册权限: Privacy - Photo Library Usage Description
通讯录权限: Privacy - Contacts Usage Description
蓝牙权限:Privacy - Bluetooth Peripheral Usage Description
日历权限:Privacy - Calendars Usage Description
定位权限:Privacy - Location When In Use Usage Description

iOS 10 适配的那些坑_第1张图片
权限相关属性

二、通知问题

iOS7 开始支持后台推送 在iOS9之前,app进入后台后收到通知都会进入该代理方法,获取通知的数据,在iOS10 中,只有后台推送才会进入该方法,即设置推送的content-available才会进入,iOS10 可以使用最新的userNotification.framework或者didReceiveRemoteNotification获取通知内容 不过该方法在iOS10中已经废弃,还是建议适配iOS10

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo 
40992A3497FEF9733E816A72418054D9.jpg
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler NS_AVAILABLE_IOS(7_0) __TVOS_PROHIBITED;
关于通知的补充

接入 iOS Notification Service Extension 的注意事项:

  • mutable-content 要为 1 ,系统才会让通过 NotificationService 去下载图片资源,否则不会使用该类;
  • 资源路径一定要是 _https_ 的,否则无法生效,还有图片大小不宜过大,因为通过 NotificationService 下载图片资源的时间很短,图片资源太大,系统会来不及下载;
  • attachment 支持类型如下:
iOS 10 适配的那些坑_第2张图片
image.png

示例 playload

{"aps": {"alert":{"title": "测试 title","body": "测试 body"},"mutable-content":1},"sound": "default","image": "https://upload-images.jianshu.io/upload_images/2691764-7859401c51e1e9b9.png","category": "test"}

你可能感兴趣的:(iOS 10 适配的那些坑)