iOSwin10新特性性及开发者要注意什么

iOS 10 正式版已经到来,这三个新功能值得关注_网易新闻
iOS 10 正式版已经到来,这三个新功能值得关注
用微信扫码二维码
分享至好友和朋友圈
(原标题:iOS 10 正式版已经到来,这三个新功能值得关注)
本文来自《好奇心日报》,更多好文章请在各大应用商店搜索 “好奇心日报”。
iOS 10 的正式版已经在今天凌晨 1 点钟推送。这是 iOS 7 以来外观变化最大的新系统。
我们在 6 月份新系统测试版刚刚发布的时候做了体验。具体的外观变化可以点击这里回顾。
iOS 10 是苹果变得更开放的开始。正式版最大的不同是可以用上支持新系统的应用。
和开发者版相比,正式版开放了大部分 WWDC 上提到的第三方应用权限,部分开发者也已经发布针对 iOS 10 的新应用,比如你常见到的大众点评、印象笔记、Pocket……
需要注意的是,只有 iPhone 5 及以上用户才能更新 iOS 10。另外记得在升级前备份。
iPhone 可以拦截骚扰电话,但和 Android 很不同
这是面向中国用户的新功能,iOS 开放了部分电话的权限,让应用可以拦截中介、诈骗等骚扰电话——就像 Android 手机那样。
目前腾讯手机管家(iOS)和 360 手机卫士(iOS)已经上线了支持这个功能的新版应用。以腾讯为例,在使用前你需要前往设置中找到“电话”,开启“来电阻止与身份识别”这个新的选项。
第一次打开手机管家需要更新号码库,或者设置成 Wi-Fi 环境下的自动下载。这之后你每次接到号码库中的号码,来电界面就会直接显示一行“骚扰电话”的提醒。
这和 Android 手机上的电话拦截有着很大不同。腾讯手机管家的产品负责人告诉《好奇心日报》,苹果出于用户隐私安全的考虑,对这个电话接口有所限制,因而所有的电话号码识别都基于本地,而不是像 Android 手机那样直接从云端调用。这也是为什么你一定要定期更新号码库,这也必然会占用一部分手机存储空间。
同时 iOS 上的手机管家目前并不支持“智能拦截”,也就是自动挂断。接到骚扰电话的时候,你只能拒接或者拉进黑名单举报。
至于拦截的准确度怎么样,还是需要经过长时间的体验来检验。
iMessage 有了一个自己的应用市场
iOS 10 的 iMessage 变得非常花哨,在开发者版本上,输入框里的扩展功能还没有第三方应用支持,三个月之后的今天,它已经成了一个像样的应用市场了。
点开输入框左边的按钮、点击“+”就可以看到它,你会发现这和 app store 有几乎一模一样的界面,有推荐栏目、已下载管理和搜索这几个完整的模块,只不过应用的图标都是椭圆形。我们在这里发现了些常见应用,比如印象笔记、微票儿、美图秀秀……
以美图秀秀为例,添加之后它提供简单的图像处理工具,可以直接在输入框的位置来编辑而不用跳转到原应用。
这里又不止有应用,还有各种表情贴纸。下载之后它会像微信表情包那样出现在界面下方,拖入输入框下方就能发送。
还有其他的变化,比如在地图里定个餐厅位
除了上面说到的这些,大众点评(iOS)也在昨天更新了 iOS 10 的新版本,它和苹果原生地图的联系更紧密了。
在苹果地图上搜索出来的餐厅结果,部分支持来自大众点评的订座位功能。我们试了一下,它不需要跳转,直接在应用内完成。但新版苹果地图在生活服务上的功能还是有些简单,除了餐厅之外比如酒店是不能预订的。
其他方面的小变动还有打开桌面文件夹的模糊效果,它模糊的程度更深了一些;键盘和锁屏的音效相比开发者版也有些不一样,声音更低沉了。
今天只是 iOS 10 面向所有人的第一天,之后会有越来越多的应用开发者会推出新版、增加新功能。智能手机已经没什么创新的今天,我们可以检验一下苹果所做的这些开放,到底能在多大程度上提供便利。
题图来自 Tech Crunch、
喜欢这篇文章?去 App 商店搜 好奇心日报 ,每天看点不一样的。
(原标题:iOS 10 正式版已经到来,这三个新功能值得关注)
本文来源:好奇心日报
作者:周韶宏
责任编辑:王晓易_NE0011
用微信扫码二维码
分享至好友和朋友圈
加载更多新闻
热门产品:   
:        
:         
热门影院:
阅读下一篇
用微信扫描二维码
分享至好友和朋友圈作为一名iOS开发者,密切关注苹果的最新动态是一名iOS开发者必备技能。关于iOS10中的新特性介绍的也比较多,今天小编推荐董铂然博客中关于iOS10新增Api的功能介绍。干货多多,不容错过!
本文主要是一些对iOS新功能的探索,之前发现博客里关于iOS新功能的分析大多是过于概括,每个功能几句话,无法了解到具体的功能。
所以本次的探索是基于Api层面,着重看一些具体用法所做的笔记,本来想分别画个类图来着,后来还是觉得太耗时而放弃。
如果不想把苹果iOSSDK里的.h文件都摆出来详细读,那看这篇笔记应该是个不错的选择。
本文以文档的目录为基础,提到的功能模块有:
Proactive Suggestions
Integrating with the Messages App
User Notifications
Speech Recognition
Wide Color
Adapting to the True Tone Display
App Search Enhancements
Widget Enhancements
Security and Privacy Enhancements
还没有详细探索的模块是
CallKit (工作职能和这里联系不多,还不care这里)
Apple Pay Enhancements (工作职能和这里联系不多,还不care这里)
SiriKit的功能非常强大,支持音频、视频、消息发送接收、搜索照片、预订行程、管理锻炼等等。
在用到此服务时,siri会发送Intent对象,里面包括用户的请求和各种数据,可以对这个intent处理选择适当的响应。
这个功能主要是看这两个头文件(#import&Intents/Intents.h&、#import &IntentsUI/IntentsUI.h&)所涵盖到的类太多,前期先略过了,之后等iOS10可以推送更新了再做进一步调研。
Proactive Suggestions 系统预先建议
背景就是iOS9的时候系统给予的主动建议会通过:Spolight搜索,Safari搜索,Handoff,或者siri建议。
在iOS10之后新增了,键盘QuickType建议,地图,车载娱乐,应用切换,siri交互,锁屏播放。
比如你正在一个应用里看一个酒店,可以使用mapitem属性保存正在查看的这个酒店的位置,然后你切换旅行或地图App时这个位置可以自动提供使用。
如果你需要这样利用系统来共享一个位置,那你需要指定这个位置的经纬度,地名,电话等属性 来便于siri的直接调起。
文档中还列出了几种场景
1、在输入框(UITextFiled)输入时,可以指定一下这个输入框的类型,以便系统可以分析出用户的语义。
是电话类型就建议一些电话,是地址类型就建议一些地址。
看下头文件(#import &UIKit/UITextInputTraits.h&)可指定的类型 就是这个新增的textContentType字段,里面有很多种类型可选。
2.如果是视频类App可以使用MPPlayableContentManager(#import &MediaPlayer/MPPlayableContentManager.h&)看了下,新增了一个属性nowPlayingIdentifiers,苹果的意思应该是只要你以前是用这个多媒体类播放音乐的我就可以让你在锁屏页面交互,需要配置在这个数组里。
3.如果是出行类app可以使用MKDirectionsRequest。(#import &MapKit/MKDirectionsRequest.h& )这个类里几乎没有新增api,iOS10就新增了一个枚举,而且看上去就是个默认值。
如果要使用此功能,需要配置在info.plist文件里 新增key – value ,MKDirectionsApplicationSupportedModes – MKDirectionsModeRideShare。
User Notifications 用户通知
总体的意思就是支持了很多用户定义的通知,并且可以捕捉到各个通知状态的回调。
以往通知的概念是:大家想接收的都提前做好准备,然后一下全量分发,没收到也不管了,也不关心发送者。
现在用户通知做成了和网络请求有点像 一个先发request再得到response的流程,甚至封装了error,可以在各个状态的方法中做一些额外操作,并且也能取到一些字段,如发送者等。
此功能的头文件入口在#import &UserNotifications/UserNotifications.h&
1.NSString+UserNotifications.h
有一个方法 localizedUserNotificationStringForKey: arguments: (提供该通知被呈现时的本地化字符串),猜测下面的类有很多initWithIdentifier的,他们的indentifier就是这个。
2.UNError.h
有一个属性UNErrorDomain 和一个枚举 UNErrorCode,顾名思义。
3.UNNotification.h
里面有两个属性,date日期 和 request,这个request是上面“8”的类型UNNotificationRequest,点进去看了下比较清晰,有identifier标识,content内容,trigger触发条件, 和带上这三个东西的初始化方法。
其中内容 和 触发条件这两个属性,分别是上面“7” 和 “12”的类型,这个下面再谈。
4.UNNotificationAction.h
这个类突出的是一个通知的动作,有identifier,title,options(枚举,就是通知当前的权限,允许?拒绝?前台时允许?)属性。
然后就是带上这三个东西的初始化方法。 然后比较费解的就是下面有一个子类UNTextInputNotificationAction ,这个子类有两个额外属性, 按钮title,和文本框placeholder, 为什么会是这两个属性?
莫非是点击通知后下拉出的快速回复,有一个输入框和一个按钮。
5.UNNotificationAttachment.h
这个里面就是URL(资源url属性),type(附件类型)。 然后是带上这两个属性的初始化方法。
下面声明了几个字符串常量,暂时还不知道具体用在哪里,typeHint,hiddenKey,clippingRectKey,TimeKey。
6.UNNotificationCategory.h
有indentifier属性,actions(里面是数组),minimalActions(最重要的数组,就是只能给你两个位置显示你显示哪两个,这么个意思),intentIdentifiers属性(应该是和上面的动作数组关联的吧),options(权限相关,无?允许自定义关闭?允许车载系统交互?)。
最后就是把这些都带上的init方法。
猜测这个类之所以取名叫category应该是,在某个地方展示通知的时候会把所有通知一一分类。
然后每个类别的通知可能最多只能让你展示几个,如果不做限制应该会展示全部通知,如果权限设置的是允许自定义关闭那可能就是支持类似一键清除的操作。
7.UNNotificationContent.h
消息的内容,一看就能知道应该是一个类似于Entity的东西,里面装有大量的属性:
attachments(可选的附件集合),badge(小红点数量),body,categoryIndentifier,launchImageName(从消息里点开的应用程序应该能看到启动图对吧),subtitle,threadIdentifier(与request关联),title,userInfo,sound这个是“11”的类型。
应该是同时来时的声音,点开“11”看一下 ,就俩方法,defaultSound,soundNamed: 自定义声音,都在~/Library/Sounds 目录下。
恩再回到刚才那个content类里面有个子类UNMutableNotificationContent,属性和父类相同,只不过是子类的属性都可以修改了,父类的那些属性都是readonly的。
8.UNNotificationRequest.h 上面第3条说过了
9.UNNotificationResponse.h
有action,也有request,那也就有response,这里面有两个属性,notification,actionIdentifier 响应里就这俩破玩意。
然后有个子类UNTextInputNotificationResponse, 这里面就一个属性userText ,看命名很好猜,应该就是前面说的那个有输入框里输入的内容。
10.UNNotificationSettings.h
这个类里就是一些设置了,有一个枚举说的是有没有权限,一个枚举说的是不支持?禁用?启用?。
然后下面一大波属性,小红点设置,声音设置,弹窗设置等等 都是这个枚举类型, 最后还有个alertStyle属性(枚举,None?Banner?alert?)。
11.sound前面第7条说过了
12.UNNotificationTrigger.h
有一个属性 repeats(是否重复发通知)。
下面有四个子类,push通知触发, 时间通知触发,日历通知触发,地区通知触发, 时间的有timeInterval属性, 日历的有dateComponents属性。
然后时间和日历的子类都有nextTriggerDate 方法。
13.UNUserNotificationCenter.h
这里面东西多到吐了,同学你记得NSNotificationCenter么? 需要提一点的就是以前的通知中心有个方法[NSNotificationCenter defaultCenter], 这里是[UNUserNotificationCenter currentNotificationCenter], 提醒一下到时候别说敲不出来。
方法大多是一些remove,add,get等操作, 还有2个代理方法:通知将要发出去时调用,收到通知的response后调用。
14.UNNotificationServiceExtension.h
里面有两个方法,收到通知的请求后调用, 系统将要销毁时调用。
通知里面有UI相关的类 #import &UserNotificationsUI/UserNotificationsUI.h&
这个类里面就一个文件, 而且方法比较单一,就是收到通知调用,和收到通知的响应调用。
其他方法也就是mediaPlay 和 mediaPause 。
和一些多媒体播放的按钮frame,color等, 这里面的作用难道仅仅就是通知来了后播放的音乐暂时暂停下,响一声通知,再播放?
具体WWDC2016上说的锁屏页面的通知样式处理的api是在下面的部件增强章节中。
Integrating with the Messages App 与系统短信 app交互
对消息额支持很大,可以模拟发消息收消息,发邮件等,提供了UI界面。
也提供了一些额外扩展的api,如表情包区域。WWDC2016上说的各种消息内的新操作在头文件中都能找到Api。
此功能的头文件入口在#import &Messages/Messages.h&
1.MSMessagesAppViewController.h
这个类应该就是苹果自己的消息界面,你可以继承他写你自己自定义的界面。
属性有:activeConversation 指的是当前的会话对象,是上面“2”这个类型,具体详细可以看下面的第“2”点、还有个是presentationStyle(外观样式,枚举类型,紧缩?扩张?)。
接下来就是方法了:requestPresentationStyle(请求消息过渡到指定的样式),dismiss消除方法。
然后就是一波生命周期方法了,每一类都有will和did,会话信息将要(已经)活跃时,将要(已经)解除活跃,将要(已经)选择信息,将要(已经)收到信息,将要(已经)开始发送,将要(已经)取消发送,将要(已经)开始过渡。
2.MSConversation.h
属性有localParticipantIdentifier(当前会话参与者生成的标识,他说只有删了App才会变 姑且理解成id是不会变的),remoteParticipantIdentifiers(远端的标识符数组),selectedMessage(选中的信息),以及4个对象方法 插入一条信息,插入一个标签,插入一段文本,插入一个附件。
这四个方法都有成功的回调。
3.MSSession.h
这个类里面是空的,解释说是用session来处理消息序列间的关系。可能就是占个位,以后估计会添加东西。
这个MSSession是后面很多参数的类型,应该就是区分消息类似于标识符的作用。
4.MSMessage.h
初始化方法是initWithSession ,没错就是上面那个MSSession。
除了初始化方法剩下的就全是属性了:session,senderParticipantIdentifier(发送者的标识符),layout布局这个是“5”这个类型,URL,shouldExpire(选yes会自动消失,用户手动选择为这条消息续命),accessibilityLabel(残疾人模式支持),error。
5.MSMessageLayout.h
这个是抽象类,里面是空的,就是个布局文件,继承自NSObject。
6.MSMessageTemplateLayout.h
继承上面那个类,看名字是模板布局后面应该会用的挺多的,里面的属性有,标题,子标题,尾部标题,尾部子标题,图片,多媒体URL,图片标题,图片子标题。
7.MSSticker.h
应该是消息上的表情包。 里面就有两个属性imageFileURL ,localizedDescription 图片和局部描述。
然后是带上这两个属性的初始化方法 initWithContentsOfFileURL: localizedDescription: 。
8.MSStickerView.h
这个类就是一个view,里面包着一个sticker,也就是包裹着上面那个装饰品的view。
提供了带上sticker的初始化方法,一个常规属性animationDuration,和三个方法startAnimating,stopAnimating,isAnimating。
9.MSStickerBrowserViewDataSource.h
细思极恐,这个类不就是wwdc2016上说的那个可以在消息下面添加自定义表情的地方么。
符合datasource的风格,里面就两个方法,numberOfStickersInStickerBrowserView: (返回一个总数),stickerBrowserView:stickerAtIndex:(返回这个索引下的内容)。
10.MSStickerBrowserView.h
上面那个是datasource,那这个就是用了上面数据源的view呗。
除了初始化方法,有两个属性 stickerSize(枚举,小,中,大),dataSource(就是上面的“9”),还有个人reloadData方法。
11.MSStickerBrowserViewController.h
上面是个view, 这个就是承载上面那个view的viewcontroller。肯定得有这个属性stickerBrowserView 和初始化方法。
这个message模块还有UI相关的api #import &MessageUI/MessageUI.h&
就是两个VC ,MFMailComposeViewController,MFMessageComposeViewController。
这两个都是继承自UINavigationController. 觉得这两个就是发邮件的编辑页面,和发消息的编辑页面。
发邮件的页面里有 canSendMail (Bool方法),set主题,set发件人,set收件人,set内容,set附件。
然后有一个代理,和代理方法,猜也能猜到 就是成功失败回调。
mailComposeController:didFinishWithResult: error: 。 那另一个消息和这差不多了就不说了。
Speech Recognition 语音识别转文字
这个类里面的Api和方法调用都非常清晰,感觉使用起来会非常方便。
真的为科大讯飞捏把汗了,科大讯飞的app(录音宝)我看过,都还没有说一段语音能直接转文字的功能,他们是直接把声音文件上传,然后24小时候再发给你转换后的结果…而且一上来就要收费。
苹果的这个功能已经做到了系统原生支持,真的厉害。
此功能的头文件入口在#import &Speech/Speech.h&
1.SFSpeechRecognitionResult.h
这个类里有三个属性:bestTranscription 就是最优的转化结果咯,是上面的“7”这个类型的。
然后再看下这个SFTranscription.h ,果然不出所料 有两个属性 一个是字符串类型formattedString 一个是数组类型的segments ,恩 前者就是转化后的字符串,后者是分割后的一个个小结果集合。
然后这个分割的一个个小结果呢又是上面“6”这个类型。
那再看一下“6” 里面的属性就是 substring, 时间戳,duration,准确性,备选答案数组,这些很清晰的东西了。
2.SFSpeechRecognitionRequest.h
这个类里东西有点多,属性taskHint,是上面“4”这个类型,点开一看就是一个枚举,用来区分你这个语音识别的请求是哪一类的 查找?确认?听写?无法识别?
接下来是两个BOOL类型的,shouldReportPartialResults(是否语音局部的一块一块也要处理?默认选false就是一句话全说完了再上传吧)。
detectMultipleUtterances(假如你说了10秒钟,只有后5秒匹配到了结果,那你前面删了还是保留?默认不删),然后是分析到的关键字数组,和标识符什么的。
然后这个request有两个子类,一个是从本地URL读取 一个声音文件去识别, 一个是默认做法用话筒和AVFoundation库接收到声音去识别,然后有几个拼接声音的API。
3.SFSpeechRecognitionTask.h
从名字就能看出来这是语音识别最重要的一个类了,里面的属性有:state这是一个枚举,说明当前状态是进行中?已完成?被取消?等等。
接下来是三个常见的 isFinishing ,isCancelled ,error 。
接下来是 isPowerAvailable (是否开启说话声音大小的监测?),peakPower(最大声音),averagePower(平均声音)。
属性就这些了,接下来就是一个协议和一波代理方法:刚刚识别出话语调用,猜测话语时调用,话说完了调用,取消时调用,等等等,你能想到的回调方法苹果应该都有的。
4.上面第2条里面说过了
5.SFSpeechRecognizer.h
和系统的那些相机权限,通讯录权限有点像, 就是现在的状态是什么?同意?拒绝?还是未选择过?
然后提供了方法让用户去选择。
然后有些属性:NSSet类型的supportedLocales(支持地区方言的集合),
available是否可用,locale当前地区 ,defaultTaskHint默认类别,request(就是上面说的请求),队列,代理。
然后有个协议和代理方法:发现用户给与的权限发生改变时调用。
6和7. 上面第1条里说过了
Wide Color 宽域颜色
文档的原话说:大多数的 core字打头的图形框架 还有AVFoundation 都大大提高了对扩展像素和宽色域色彩空间的支持。
通过图形堆栈扩展这种方式比以往支持广色域的显示设备更加容易。现在对UIKit扩展可以在sRGB的色彩空间下工作,性能更好,也可以在更广泛的色域来搭配sRGB颜色。
然后说了几个场景说建议你用sRGB吧,比如依赖于UIkit的clamp component values的应用程序,或是使用较低级别api执行自己图像处理的 都建议用sRGB吧。
然后看了下UIColor类里 到底什么是sRGB? 发现多了两个iOS10新增的api。
入职你的梦想 VS 变现你的技术iOS10.3正式版上线,这些新功能让开发者们兴奋!
iOS10.3正式版上线,这些新功能让开发者们兴奋!
夏天的淘金热
随着iOS 10.3的更新,开发者回复用户评论功能正式上线,在 App Store 中下载的软件,用户将可以和开发者进行评论互动。苹果在开发者门户网站中发布公告,详细介绍了 iOS 10.3 中的 StoreKit API,指出该新的后端资源将能够提升开发者及其顾客的体验。限制弹窗邀请用户评论比如开发者可利用 SKStoreReviewController API,让用户在不退出应用即可评分,发表评论。此前如果用户接受弹出的评分窗口的请求,那么界面便会跳转到 App Store 中相应应用的界面,以便用户进行评论。以前用户需要经过 3 个步骤才能完成评分与评论:接受评分请求,在评分及评论结束后离开此页面,返回到原来的应用。正是因为这些麻烦的步骤,很多用户根本不会接受应用提出的评分请求。在简化了这个过程的基础上,苹果限制了应用内要求评级的弹窗次数,每年只能弹三次。软件用着用着就弹出“亲,给个好评”的情况不会频繁出现了!!!!允许开发者对用户在AppStore中的评价予以回复StoreKit API 中的另外一个功能就是支持开发者回复其引用收到的评论(MAC.App Store也可以使用)。今年 1 月份在公开这个功能时,苹果就表示开发者一直以来都要求苹果开放这个功能,开发者回复时,用户可以接到通知以及更新反馈意见的选择。对于这个新增的回复机制,苹果并没有做出过多的限制,开发者可以对任何评论进行回复。开发者可随时编辑他们的回复,每一个评论将仅显示一个开发者的回复。而对于开发者来说,那些恶意低分的评论,有时候真的会伤害到他们。随着评分降低,使用App的人减少,那么他们的收入就会下降,而开发人员也没有能力和精力去修复Bug或者支持新的iOS系统,更不要增加新的功能了,这是一个恶性循环。现在开发者可直接在App Store中回复用户评论,且回复所有人可见确实为开发者与用户之间搭建了一座更直接的桥梁,这对于双方来说,其实都是很有利的。用户可以继续表达和发布自己的评价,而且同时我们也能听到开发者的声音。早前还有消息称iOS 10.3可能支持开发者自定义图标,开发人员也可以利用图标来显示一些信息,比如直接在图标中显示位置、天气、温度以及一些提示性信息。但这一消息并没有在苹果发布的官方信息中写明,也许还要等待,相信这一功能上线开发宝宝们会更高兴,让我们拭目以待吧!本文作者:酷传菌,酷传推广手册,未经允许,严禁转载!
本文仅代表作者观点,不代表百度立场。系作者授权百家号发表,未经许可不得转载。
夏天的淘金热
百家号 最近更新:
简介: 江河皆海,容大。悬崖上可以没有自私的欲望是严峻的。
作者最新文章iOS10新特性及开发者要注意什么 - 简书
iOS10新特性及开发者要注意什么
当晚看了WWDC2016直播,第二天我安装了iOS10试用版,我们发现变得谨慎而开放的苹果在新一版四大平台系统中展示了很多变化,当然重中之重还是伟大的iOS,看这架势苹果是要做一系列行业平台了。通过试用iOS10beta版,除了长大了的更强大的Siri主要感受到iMessage更加如微信般强大到除了一般的文字、图片、表情、语音消息,还支持消息特效动画、动态涂鸦消息、类似于发红包转账的支付、推广分享链接、媒体文件发送;还有改进的地图导航,支持语音、支持嘀嘀打车等;自带的一堆长期没有存在感的软件终于可以卸载了,多了个HomeKit应用;陌生来电识别功能;通知栏、通知提醒消息格式和上拉面板设计风格由之前简约半透明的转变为傻大白条,个人感觉变丑了!挺喜欢夜间模式的.
接下来我们粗略解读一下WWDC2016和官方文档,我们来看看iOS 10 都给开发者带来了什么?
1 SiriKit 在 iOS 10 里面开发者可以使用 Siri SDK,这可能是 iOS 10 最重要的新 SDK之一。从此开发者可以使用原生API提供语音搜索、语音转文字消息甚至更多常见语音功能。2 Proactive Suggestions
貌似是一个和 CoreSpotlight 有整合的使用建议的东西,大概就是Siri建议那种根据使用习惯推荐吧。3 Message App Extension
在 iOS 10 里面开发者可以给 Message.app 提供两种 App Extension,分别是可以提供一个表情包(没错,英文名就叫 Sticker Pack),和一个自定义的界面,用于表情搜索等,显然这是一个让表情 app 开发商们笑到哭的 API,我也做了几个表情包发上去了。MessagesExtension
4 User Notifications 这个 API 让你可以处理本地或远程的用户通知,并且可以基于某个条件,例如时间或者地理位置。这个异常强大,好像可以在通知里包含图片和视频了,貌似可以拦截并替换自己 app 发下来的 payload。5 Speech Recognition
见闻知意,语音识别 API,可以把音频流实时的转换为文本。虽说早期版本已经有了TTS语音转文字,但毕竟Siri语义识别的加入让机器对自然语义的把握更精准,详见Speech.framework6 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的重视。。用这个框架来让用户查看和接听电话的锁屏和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和Xcode8中遇到的其他问题:1.iOS10 隐私权限问题 闪退 崩溃:***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.
NSContactsUsageDescriptioncontactsDesciptionNSMicrophoneUsageDescriptionmicrophoneDesciptionNSPhotoLibraryUsageDescriptionphotoLibraryDesciption其中这个string值可以随意写:(只要是在给用户弹窗授权是描述使用目的的)2.需要注意的是Xcode也是向前兼容的,在Xcode8上打开项目要小心,尤其是对于xib工程,在变动后可不要随意点保存,否则当你回头用Xcode7打开时时发现报错了,Xcode8 更新保存的xib 配置文件在xcode7上有些是识别不了的!3.在Xcode8、iOS10SDK上新建iOS工程你将看到Message Application和Sticker Pack Application,后者是为iMessage表情包专门准备的,但是不需要代码。4.Xcode8上调试工程啥也没干就打印一堆烂七八糟的东西,我这处女座看着不爽,具体也没细研究,目前的粗暴解决办法是去edit scheme的RUN Debug下的Arguments 里的环境变量(environment variables)下,添加设置Name:OS_ACTIVITY_MODE
--& Value: disable
不太建议。5.使用Xcode8的同学应该发现以往习惯command+/来快捷注释代码 的功能失效了!这个是因为苹果提升xcode安全,默认把一些权限关闭了,比如默认把插件屏蔽了。解决方法命令运行:
sudo /usr/libexec/xpccachectl
有些须重启Mac或Xcode后生效6.有部分同学反映说在iOS10下 tabbar不见了,不过我尚未见过这这种情况,可能我从2014年后基本所有的项目都用了storyboard和xib吧。建议确认规范一下初始化代码,或者在Xcode8下重构一下这部分代码或者使用storyboard。 据我所知,iOS10下UITabBarController并无新变化,只是iOS10 UITabBarItem多了个badgeColor和BadgeTextAttributes属性设置。7.VoIP网络电话应用要引起重视了,没有使用VoIP推送的网络电话应用后台时iOS10 下已经明确警告?:Legacy VoIP background mode is deprecated and no longer supported.赶紧使用PushKit吧,比传统的APNS推送更能保证即时性和省电了。本人平时不爱发帖,但欢迎交流,微博:_viviwu_
iOS/Mac独立开发者,专注即时通信、VoIP、移动办公。

我要回帖

更多关于 苹果开发者注意事项 的文章

 

随机推荐