在 iOS 10 里面开发者可以给 Message.app 提供两种 App Extension,分别是可以提供一个表情包(没错,英文名就叫 Sticker Pack),和一个自定义的界面,用于表情搜索等,显然这是一个让表情 app 开发商们笑到哭的 API。MessagesExtension 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 的界面。 8 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.” 大概是可以做电话黑名单功能了。 9 App Extensions 其实上面也有提到,这个是重中之重,iOS 10 居然丧心病狂的带来了如下的全新 7 种 App Extension: Call Directory Intents Intents UI Messages Notification Content Notification Service Sticker Pack 10 第三方键盘的改进 非常非常重要,第三方键盘一直都不能很方便的拥有长按地球键的功能,现在有了。通过 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. 意思是说:你需要在info.plist文件 添加一个“NSContactsUsageDescription ”的Key,Value添加一个描述。 我这里需要加入的有在应用的info.plist里加入: NSCameraUsageDescription cameraDesciption NSContactsUsageDescription contactsDesciption NSMicrophoneUsageDescription microphoneDesciption NSPhotoLibraryUsageDescription photoLibraryDesciption 其中这个string值可以随意写 2.需要注意的是在Xcode8上打开项目要小心,尤其是对于xib过程,在变动后可不要随意点保存,否则当你回头用Xcode7打开时时发现报错了,Xcode保存的xib在xcode7上是识别不了的! 3.在Xcode8、iOS10SDK上新建iOS过工程拟将看到Message Application和Sticker Pack Application,后者是为iMessage表情包专门准备的,但是不需要代码。