ios10
- 1.SiriKit 在 iOS 10 里面开发者可以使用 Siri SDK,这可能是 iOS 10 最重要的新 SDK之一。从此开发者可以使用原生API提供语音搜索、语音转文字消息甚至更多常见语音功能。
- 2.Proactive Suggestions 貌似似一个和 CoreSpotlight 有整合的使用建议的东西.
- 3.Message App Extension 在 iOS 10 里面开发者可以给 Message.app 提供两种 App Extension,分别是可以提供一个表情包(没错,英文名就叫 Sticker Pack),和一个自定义的界面,用于表情搜索等,显然这是一个让表情 app 开发商们笑到哭的 API。
- 4.User Notifications 这个 API 让你可以处理本地或远程的用户通知,并且可以基于某个条件,例如时间或者地理位置。这个异常强大,貌似可以拦截并替换自己 app 发下来的 payload。
- 5.Speech Recognition 人如其名,语音识别 API,可以把音频流实时的转换为文本。
- 6.App Search Enhancements 对 CoreSpotlight 的增强,其中我比较感兴趣的是 Visualization of validation results。
- 7.Widget Enhancements 为了配合 iOS 10 锁屏下面 Widget 的体验,苹果提供了 widgetPrimaryVibrancyEffect 和 widgetSecondaryVibrancyEffect 用于定制化 Widget 的界面。
- CallKit 非常重要的 API,继2014年苹果推出VoIP证书后,这次VoIP 接口的开放,以及一个全新的 App Extension,简直是VOIP的福音,可见苹果对VOIP的重视。callkit框架 VoIP应用程序集成与iPhone的用户界面,给用户一个很棒的体验。用这个框架来让用户查看和接听电话的锁屏和VoIP管理联系人电话在手机APP的收藏夹和历史记录。callkit还介绍了应用程序的扩展,使呼叫阻塞和来电识别。您可以创建一个应用程序扩展,可以将一个电话号码与一个名称联系起来,或者告诉系统当一个号码应该被阻止。“that enable call blocking and caller identification. You can create an app extension that can associate a phone number with a name or tell the system when a number should be blocked.” 大概是可以做电话黑名单功能了。按我的理解,也就是说你的网络电话可以拓展到系统电话中,锁屏时可以利用系统电话UI代为接听而不必解锁打开你的native App,再通过拓展关系把来电信息回调给你的native App。换句话说,今后的VoIP应用可以像iPhone系统电话那样享有很高的UI拓展权限,不同VoIP电话的通话记录都可能在电话应用里看到。
- 9.App Extensions 其实上面也有提到,iOS 10最重要的开发特点就是允许第三方应用对自带基础app的拓展关联, 全新 7 种 App Extension:
Call Directory(VoIP回调)
Intents(接Siri、Apple map等服务)
Intents UI(接Siri、Apple map等服务的自定义界面)
Messages(iMessage拓展)
Notification Content(内容通知)
Notification Service (服务通知)
StickerPack(iMessage表情包)
10.Custom Keyboard 对第三方键盘的改进 非常非常重要,第三方键盘一直都不能很方便的拥有长按地球键的功能,现在有了。通过 handleInputModeListFromView:withEvent: 可以弹出系统键盘列表。同时使用 documentInputMode 可以检测输入上下文中的语言,你可以对输入方式进行一些类似于对齐方式的调整。
另外需要注意的是,和以往历代iOS版本推出一样,新陈代谢,有新SDK、新API的开放,也会有旧的API被遗弃,所以好好检查你的项目,使用了被遗弃的API要尽快修改,以免不兼容!还有个要注意的问题 iOS10 对隐私权限的管理更为严格 ,比如访问的摄像头、麦克风等硬件,都需要提前请求应用权限、允许后才可以使用,或者现在要提前声明,虽然以往要求不严格。
在iOS10中比如遇到崩溃,日志:
iOS10闪退 崩溃*1:
***This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.
NSContactsUsageDescriptioncontactsDesciption
NSMicrophoneUsageDescriptionmicrophoneDesciption
NSPhotoLibraryUsageDescriptionphotoLibraryDesciption
其中这个string值可以随意写
2.需要注意的是Xcode也是向前兼容的,在Xcode8上打开项目要小心,尤其是对于xib工程,在变动后可不要随意点保存,否则当你回头用Xcode7打开时时发现报错了,Xcode8 更新保存的xib 配置文件在xcode7上有些是识别不了的!
3.3.在Xcode8、iOS10SDK上新建iOS工程你将看到Message Application和Sticker Pack Application,后者是为iMessage表情包专门准备的,但是不需要代码。
9.3
Accessing the Music Library (访问音乐库)
CloudKit Framework ()
HealthKit Framework ()
Watch Connectivity Framework
9.2
CloudKit Framework
WatchKit Framework
9.1
Live Photos (动态图片)
Support for Apple Pencil (支持苹果手写笔)
9.0
Multitasking Enhancements for iPad (iPad 多任务)
-
3D Touch (压力传感器) (快捷方式、预览)
UIApplicationShortcutItem (pick pop )-An application shortcut item, also called a Home screen dynamic quick action, specifies a user-initiated action for your app.应用程序的快捷方式,也叫做主屏幕动态快速行动,指定一个用户发起的行动为您的应用程序。- 动态快捷方式
To register an array of Home screen dynamic quick actions, set the value of your shared app object’s shortcutItems property with an NSArray instance containing your defined dynamic Home screen quick actions 。注册主屏幕动态数组快速行动,设置你的共享应用程序对象shortcutItems属性的值与NSArray实例包含动态定义主屏幕快速行动 - 静态快捷方式 To change your app’s Home screen dynamic quick actions, replace your app object’s shortcutItems array by setting a new value for the property. As a convenience for working with registered quick actions, this class has a mutable subclass, UIMutableApplicationShortcutItem. The following code snippet illustrates one way to use the mutableCopy method, along with mutable quick actions, to change the title of a dynamic Home screen quick action:改变你的应用的主屏幕动态快速行动,取代你的应用对象的shortcutItems数组通过设置一个新值的属性。为方便处理注册快速行动,这类有一个可变的子类,UIMutableApplicationShortcutItem。下面的代码片段演示了一种使用mutableCopy方法,随着可变快速行动,改变动态主屏幕的标题快速行动:
- 动态快捷方式
- UIKit framework (UIStackView)
未完待续