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

权限相关属性

二、通知问题

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 支持类型如下:
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"}

推荐阅读更多精彩内容

  • 因为要结局swift3.0中引用snapKit的问题,看到一篇介绍Xcode8,swift3变化的文章,觉得很详细...
    uniapp阅读 3,083评论 0 12
  • 现在在苹果的官网上,我们已经可以下载到Xcode8的GM版本了,加上9.14日凌晨,苹果就要正式推出iOS10系统...
    没脾气的淘气猫阅读 103评论 0 1
  • 代码注释不能用的解决办法这个是因为苹果解决xcode ghost,把插件屏蔽了。解决方法打开终端,命令运行: su...
    Q星阅读 480评论 0 0
  • 一 将之前花费了三四年时间写的一部长篇小说在淘宝上装订出来,我去长沙的一家知名出版公司面试。 同一学院的朋友在这里...
    就是孔央阅读 75评论 0 2
  • 这个春天有些寒冷 数日之内便感受四季交替 或风,或雨,或阳光 在温暖如春与冰冷如冬中 接受早春忽变的脾气 时而让你...
    如雨随行阅读 63评论 0 3