1.原文地址
2.Additional Framework Changes章節(jié)還沒來(lái)得及翻譯椭迎,之后會(huì)出
3.有些不適合翻譯的詞就沒有進(jìn)行翻譯,大家應(yīng)該能懂
4.翻譯的不是很完美田盈,希望大家多提意見
iOS 10.0
這篇文章簡(jiǎn)述了在iOS10中被引入的開發(fā)者相關(guān)的關(guān)鍵特性畜号。文章同時(shí)也列出了詳細(xì)描述這些新特性的相關(guān)文檔。
有關(guān)最新的新聞和已知問(wèn)題信息允瞧,請(qǐng)查看發(fā)行說(shuō)明https://developer.apple.com/ios/download/简软。獲取iOS10中新API的完整列表蛮拔,請(qǐng)查看iOS 10.0 API Diffs。想了解在新設(shè)備上的更多信息痹升,請(qǐng)查閱iOS Device Compatibility Reference建炫。
想了解有關(guān)Swift的更新,請(qǐng)查看Swift Language和The Swift Programming Language (Swift 3)
SiriKit
在特定領(lǐng)域提供服務(wù)的應(yīng)用可以利用SiriKit來(lái)通過(guò)Siri提供這些服務(wù)疼蛾。要想使你的服務(wù)可用肛跌,需要使用Intents和Intents UI框架創(chuàng)建一個(gè)或多個(gè)應(yīng)用擴(kuò)展(app extensions)。SiriKit支持以下領(lǐng)域的服務(wù):
- 語(yǔ)音和視頻通話(Audio or video calling)
- 發(fā)送消息(Messaging)
- 收款或付款(Sending or receiving payments)
- 照片搜索(Searching photos)
- 約車(Booking a ride)
- 管理健身(Managing workouts)
當(dāng)用戶的請(qǐng)求涉及你的服務(wù)察郁,SiriKit會(huì)向你的extension發(fā)送一個(gè)intent對(duì)象衍慎,這個(gè)intent對(duì)象描述了用戶的請(qǐng)求,并提供請(qǐng)求相關(guān)的所有數(shù)據(jù)皮钠。開發(fā)者使用這個(gè)intent對(duì)象來(lái)提供一個(gè)適當(dāng)?shù)捻憫?yīng)對(duì)象稳捆,這個(gè)響應(yīng)需要包含你處理這個(gè)請(qǐng)求的詳細(xì)操作。一般來(lái)說(shuō)乔夯,Siri處理所有的用戶交互驯嘱,但開發(fā)者也可以用你們的應(yīng)用中的extension來(lái)提供一個(gè)整合品牌或附加信息的定制UI喳坠。
SiriKit也提供這樣一種機(jī)制:你可以告訴系統(tǒng)存在于你應(yīng)用中的交互和活動(dòng)茂蚓。當(dāng)你告訴系統(tǒng)相關(guān)的交互信息聋涨,系統(tǒng)可以判斷你的應(yīng)用是否可以處理用戶目前的請(qǐng)求,如果可以脊凰,會(huì)傳遞請(qǐng)求到你的應(yīng)用狸涌。此外帕胆,intent-SiriKit定義的一個(gè)把意圖相關(guān)信息和處理步驟結(jié)合的交互對(duì)象-包含了一些詳細(xì)信息般渡,比如該步驟的起始時(shí)間和持續(xù)時(shí)間。如果你的應(yīng)用注冊(cè)了某種intent的處理能力脸秽,那么即使它沒有提供一個(gè)intent的應(yīng)用擴(kuò)展(app extensions)豹储,系統(tǒng)同樣可以啟動(dòng)它并帶著一個(gè)包含這種intent的interaction對(duì)象。
Maps和Siri都支持汽車預(yù)約巩剖,用戶同時(shí)也可以使用Maps來(lái)進(jìn)行餐館的預(yù)定佳魔。你的Intents extension使用同樣的方式處理來(lái)自于Map應(yīng)用的交互或Siri的請(qǐng)求鞠鲜。如果你定制了用戶界面断国,你的Intents UI extension也可以根據(jù)請(qǐng)求的來(lái)源-Siri或Maps-來(lái)進(jìn)行差異化的配置稳衬。
學(xué)習(xí)如何支持SiriKit并給用戶提供全新的使用你服務(wù)的方式薄疚,請(qǐng)閱讀SiriKit Programming Guide。當(dāng)你準(zhǔn)備好實(shí)現(xiàn)一個(gè)處理各種各樣intents的應(yīng)用擴(kuò)展(app extensions)砰碴,請(qǐng)閱讀Intents Framework Reference和Intents UI Framework Reference呈枉。
Proactive Suggestions
iOS10引入了新的方式來(lái)提高用戶與你應(yīng)用的互動(dòng):通過(guò)在合適的時(shí)機(jī)向用戶展示你的應(yīng)用猖辫。如果你在iOS9中采用了應(yīng)用搜索乃正,通過(guò)Spotlight和Safari搜索結(jié)果瓮具、Handoff、Siri建議叹阔,你能夠給予用戶更加深層的對(duì)活動(dòng)和內(nèi)容的訪問(wèn)能力。在iOS10和未來(lái)的版本中岸晦,你可以提供“用戶能在你的應(yīng)用做什么”這樣的信息启上,這可以幫助系統(tǒng)在更多的地方推薦你的應(yīng)用冈在,比如鍵盤相關(guān)的QuickType建議, Maps和CarPlay按摘,應(yīng)用切換頁(yè)面炫贤,Siri交互,(為媒體播放類應(yīng)用) 鎖屏界面侍郭。這些提高和系統(tǒng)集成度的功能被許多技術(shù)支持励幼,比如NSUserActivity口柳,Schema.org定義的web標(biāo)記, 和定義在Core Spotlight跃闹、MapKit毛好、UIKit肌访、Media Player 框架中的API。
在iOS10中惩激,NSUserActivity對(duì)象包含一個(gè)mapItem屬性,它允許你提供一個(gè)可以在其它環(huán)境中使用的位置信息顷蟀。例如鸣个,如果你的應(yīng)用程序顯示酒店評(píng)論囤萤,你可以使用mapItem屬性來(lái)保存用戶正在查看酒店的位置是趴,這樣右遭,當(dāng)用戶切換到一個(gè)旅行規(guī)劃應(yīng)用,該酒店的位置會(huì)被自動(dòng)提供吹榴。如果你支持應(yīng)用搜索图筹,你可以使用CSSearchableItemAttributeSet中新的基于文本的地址組件屬性远剩,比如thoroughfare和postalCode骇窍,來(lái)全面地指定用戶可能想去的位置腹纳。要注意的是當(dāng)你使用了mapItem屬性嘲恍,系統(tǒng)也會(huì)自動(dòng)將其填入contentAttributeSet屬性.
為了和系統(tǒng)分享位置信息,一定要指定latitude和longitude值淹辞,并將其加入CSSearchableItemAttributeSet中定義的地址組件屬性象缀。它也建議你為namedLocation屬性提供一個(gè)值,以便用戶可以查看到這個(gè)位置的名稱娃胆。你同樣可以提供值給phoneNumbers屬性里烦,這樣用戶就可以使用Siri來(lái)發(fā)起一個(gè)基于位置的呼叫禁谦。
在iOS9中州泊,為你網(wǎng)頁(yè)中的結(jié)構(gòu)化數(shù)據(jù)添加標(biāo)記可以豐富用戶在Spotlight和Safari中看到的搜索結(jié)果。在iOS10中力喷,你可以使用Schema.org中定義的位置相關(guān)的詞表弟孟,比如PostalAddress拂募,來(lái)進(jìn)一步提高用戶的體驗(yàn)窟她。例如震糖,如果用戶在你的網(wǎng)站上看到一個(gè)位置說(shuō)明试伙,那么當(dāng)用戶使用Maps應(yīng)用的時(shí)候于样,系統(tǒng)會(huì)提示相同的位置穿剖。需要注意的是,Safari同時(shí)支持Schema.org詞表的JSON-LD和Microdata編碼秀又。
UIKit在UITextInputTraits協(xié)議中引入textContentType屬性,使你可以指定希望用戶在文本區(qū)域中輸入內(nèi)容的語(yǔ)義宣决。當(dāng)你提供了這個(gè)信息尊沸,系統(tǒng)在某種情況下可以自動(dòng)選擇適當(dāng)?shù)逆I盤洼专,提高鍵盤的輸入校正孵构,主動(dòng)整合從其它app和網(wǎng)站獲取的信息颈墅。例如,如果你使用UITextContentTypeFullStreetAddress來(lái)通知系統(tǒng)你希望用戶在文本輸入?yún)^(qū)框中輸入一個(gè)完整的地址帽哑,系統(tǒng)就可以將用戶最近瀏覽的地址提示給他本人妻枕。
如果你的應(yīng)用是媒體播放器之類的屡谐,你可以使用MPPlayableContentManager中相關(guān)的API愕掏,iOS10可以幫助你在鎖屏的時(shí)候?qū)崿F(xiàn)查看專輯封面和媒體播放的功能顶伞。
如果你的ride-sharing應(yīng)用使用MKDirectionsRequestAPI唆貌,那么當(dāng)用戶有可能叫車的時(shí)候,iOS10可以在應(yīng)用切換界面顯示你的應(yīng)用语卤。為了注冊(cè)成一個(gè)乘車分享服務(wù)的提供方粹舵,你需要在Info.plist文件中將MKDirectionsApplicationSupportedModes關(guān)鍵字指定為MKDirectionsModeRideShare眼滤。如果你的應(yīng)用只支持共享乘車,系統(tǒng)將會(huì)以“Get a ride to...”這樣開頭的文本來(lái)推薦你的應(yīng)用情妖。如果你的應(yīng)用同時(shí)支持共享乘車和其它交通方式(比如汽車或自行車)毡证,系統(tǒng)將會(huì)使用“Get directions to...”這樣的文本料睛。需要注意的是摇邦,你收到的MKMapItem對(duì)象有可能不包括經(jīng)緯度信息施籍,并且MKMapItem需要地理編碼丑慎。
Integrating with the Messages App
在iOS10中,你可以創(chuàng)建一個(gè)應(yīng)用擴(kuò)展(app extensions)來(lái)和Messages應(yīng)用進(jìn)行交互玉吁,比如讓用戶發(fā)送文本进副、stickers影斑、媒體文件机打、交互式消息姐帚。你也可以支持交互式的消息障涯,這個(gè)更新是每個(gè)收件人對(duì)消息的響應(yīng)。你可以創(chuàng)建兩種類型的應(yīng)用擴(kuò)展(app extensions):
- Sticker pack給用戶提供了一套可以被加在消息內(nèi)容上的貼紙九秀。
- iMessage app現(xiàn)在能讓你在其內(nèi)部提供一個(gè)用戶界面鼓蜒,用于在一次會(huì)話中創(chuàng)建一個(gè)sticker的瀏覽器,這個(gè)瀏覽器可以創(chuàng)建娇豫、發(fā)送冯痢、更新包括文字浦楣、stickers咪辱、媒體文件在內(nèi)的交互式信息油狂。
當(dāng)用戶在iMessage應(yīng)用中的時(shí)候,應(yīng)用同樣可以幫助用戶搜索保存在和你應(yīng)用相關(guān)聯(lián)的網(wǎng)站中的圖片夹供。
你可以在不寫任何代碼的情況下創(chuàng)建一個(gè)Sticker包:簡(jiǎn)單的拖拽圖片到Xcode中Stickers asset catalog的Sticker Pack folder就可以了哮洽。
你可以使用Messages框架(Messages.framework)中提供的API來(lái)開發(fā)一個(gè)iMessage應(yīng)用鸟辅。想學(xué)習(xí)有關(guān)Messages框架的知識(shí)莺葫,你可以查看Messages Framework Reference捺檬。有關(guān)創(chuàng)建應(yīng)用程序擴(kuò)展(app extensions)的一般信息,你可以查看App Extension Programming Guide聂受。
如果你的app提供了可以在Messages中分享的圖片蛋济,然后你希望用戶可以在不離開Messages應(yīng)用的情況下通過(guò)Spotlight進(jìn)行通用圖片查找(就是這種碗旅,“#images”),那么第一步是創(chuàng)建一個(gè)iMessage應(yīng)用医瘫。之后的步驟如下:
- 給你應(yīng)用的entitlements添加com.apple.developer.associated-domains關(guān)鍵字醇份。這個(gè)關(guān)鍵字包含一個(gè)你希望用戶搜索到的web域的列表被芳。對(duì)于每個(gè)域馍悟,指定spotlight-image-search服務(wù)锣咒。
- 在你的網(wǎng)站上添加一個(gè)apple-app-site-association文件,文件中添加一個(gè)包含spotlight-image-search的字典趣兄,字典中也要包含你的應(yīng)用ID(app ID)艇潭,這個(gè)應(yīng)用ID是你的團(tuán)隊(duì)ID(team ID)或者一個(gè)appID+bundleID的字符串蹋凝。你可以指定最多500個(gè)路徑和模式來(lái)幫助Spotlight通用圖片搜索可以索引到(有關(guān)網(wǎng)站路徑的一些例子鳍寂,可以參考universal links的例子Creating and Uploading the Association File)情龄。
- 請(qǐng)?jiān)试SApplebot對(duì)數(shù)據(jù)進(jìn)行抓取(更多信息鞍爱,請(qǐng)查看About Applebot)硬霍。
User Notifications
iOS10引入了User Notification框架(UserNotifications.framework)笼裳,這個(gè)框架支持本地和遠(yuǎn)程通知的傳遞和處理躬柬。你可以使用這個(gè)框架中的類基于一些特殊的條件來(lái)交付本地通知,比如時(shí)間和地點(diǎn)橄碾。當(dāng)通知交付到用戶設(shè)備的時(shí)候法牲,應(yīng)用和應(yīng)用擴(kuò)展可以使用這個(gè)框架來(lái)接收和修改本地或遠(yuǎn)端的通知拒垃。
同樣是在iOS10被引入的瓷蛙,User Notifications UI框架(UserNotificationsUI.framework)使你可以定制顯示在用戶設(shè)備上的本地和遠(yuǎn)端通知樣式艰猬。你可以使用這個(gè)框架來(lái)定義一個(gè)應(yīng)用擴(kuò)展(app extension)來(lái)接收通知數(shù)據(jù)冠桃,然后提供相似的視覺效果進(jìn)行顯示。
Speech Recognition
iOS10引入了一個(gè)新的API胸蛛,它支持連續(xù)的語(yǔ)音識(shí)別胚泌,可以幫助你實(shí)現(xiàn)一個(gè)有語(yǔ)音識(shí)別并轉(zhuǎn)換為文字這樣功能的應(yīng)用肃弟。使用Speech框架(Speech.framework)中的API,你可以對(duì)實(shí)時(shí)語(yǔ)音或錄制音頻進(jìn)行語(yǔ)音轉(zhuǎn)錄穷缤。例如津肛,你可以獲得一個(gè)語(yǔ)音識(shí)別器身坐,然后像如下代碼一樣開始簡(jiǎn)單的語(yǔ)音轉(zhuǎn)錄:
let recognizer = SFSpeechRecognizer()
let request = SFSpeechURLRecognitionRequest(url: audioFileURL)
recognizer?.recognitionTask(with: request, resultHandler: { (result, error) in
print (result?.bestTranscription.formattedString)
})
正如訪問(wèn)其它類型受保護(hù)的數(shù)據(jù),比如日歷數(shù)據(jù)和相冊(cè)數(shù)據(jù)摊唇,執(zhí)行語(yǔ)音識(shí)別需要用戶的許可(有關(guān)訪問(wèn)受保護(hù)數(shù)據(jù)類的更多信息巷查,請(qǐng)查看Security and Privacy Enhancements)岛请。對(duì)于語(yǔ)音識(shí)別來(lái)說(shuō)警绩,獲取權(quán)限是必須的房蝉,因?yàn)榭紤]到識(shí)別精確度,數(shù)據(jù)會(huì)被傳送并臨時(shí)性的存儲(chǔ)在蘋果的服務(wù)器上咧擂。為了獲取用戶的許可松申,你需要把NSSpeechRecognitionUsageDescription關(guān)鍵字添加到你應(yīng)用的Info.plist文件中贸桶。
當(dāng)你在你的應(yīng)用中采用語(yǔ)音識(shí)別的時(shí)候桌肴,務(wù)必向用戶說(shuō)明他們的講話應(yīng)該是能被認(rèn)可的坠七,而且他們?cè)谀莻€(gè)時(shí)候不應(yīng)該有敏感的言論。
Wide Color
大部分圖像框架貫穿整個(gè)系統(tǒng)拄踪,包括Core Graphics惶桐,Core Image,Metal贿衍,AVFoundation在內(nèi)的框架極大的改善了對(duì)更加廣泛的像素格式和寬色域色彩空間的支持舌厨。通過(guò)在整個(gè)圖形堆棧(graphics stack)擴(kuò)展這個(gè)行為忿薇,讓設(shè)備支持更廣泛的色彩顯示變的前所未有的簡(jiǎn)單署浩。此外筋栋,UIKit把使用新的擴(kuò)展sRGB色彩空間變的標(biāo)準(zhǔn)化正驻,使sRGB顏色和其它顏色的混合變的簡(jiǎn)單姑曙,更寬的色域顯示沒有顯著的性能損失。
以下是開始使用Wide Color的一些最佳實(shí)踐捣域。
- 在iOS10中焕梅,UIColor類使用擴(kuò)展的sRGB色彩空間贞言,它的初始化不再限制組成值在0.0-1.0之間阀蒂。如果你的應(yīng)用依賴UIKit來(lái)限制組成值(無(wú)論你是創(chuàng)建一個(gè)顏色還是請(qǐng)求一個(gè)顏色的組成值),你需要在適配iOS10的時(shí)候改變你應(yīng)用的行為挪捕。
- 當(dāng)你在iPad Pro(9.7英寸)上執(zhí)行一個(gè)UIView的自定義繪圖操作的時(shí)候级零,默認(rèn)的繪圖環(huán)境是用擴(kuò)展的sRGB顏色域。
- 如果你的應(yīng)用渲染自定義的圖像鉴嗤,請(qǐng)使用新的UIGraphicsImageRenderer類來(lái)進(jìn)行管理醉锅,無(wú)論目標(biāo)位圖是用擴(kuò)展值域還是標(biāo)準(zhǔn)值域格式发绢。
- 如果你在一個(gè)廣色域設(shè)備上使用低級(jí)別的API(比如Core Graphics或Metal)來(lái)進(jìn)行圖片加工边酒,你需要使用一個(gè)擴(kuò)展范圍的顏色域和支持16位浮點(diǎn)的像素格式來(lái)組成數(shù)值。當(dāng)限制顏色值是必須的坯认,你應(yīng)該明確這樣做牛哺。
- Core Graphics引润,Core Image赴背,Metal Performance Shaders提供新的簡(jiǎn)單的選擇來(lái)處理顏色和圖片色彩空間的轉(zhuǎn)化凰荚。
Adapting to the True Tone Display
真色調(diào)(True Tone)顯示使用環(huán)境光傳感器,可以做到配合當(dāng)前環(huán)境的光線條件自動(dòng)調(diào)節(jié)顯示的顏色和強(qiáng)度缆毁。為了確保你的應(yīng)用在真色調(diào)(True Tone)提供的標(biāo)準(zhǔn)色改變功能下能正常工作脊框,請(qǐng)?zhí)砑?a target="_blank" rel="nofollow">UIWhitePointAdaptivityStyle關(guān)鍵字到你的Info.plist文件下,來(lái)描述你應(yīng)用的原始視覺內(nèi)容沉御。比如:
- 如果你的應(yīng)用是照片編輯類吠裆,顏色保真度就比自適應(yīng)環(huán)境中的白點(diǎn)要重要烂完。對(duì)于這種情況抠蚣,你可以使用UIWhitePointAdaptivityStylePhoto類型來(lái)減少系統(tǒng)提供的真色調(diào)調(diào)整的強(qiáng)度嘶窄。
- 如果你的應(yīng)用是閱讀類,和環(huán)境中的白點(diǎn)保持一致對(duì)用戶來(lái)說(shuō)就是有益的敌完。對(duì)于這種情況,你可以使用UIWhitePointAdaptivityStyleReading類型來(lái)增加系統(tǒng)提供的真色調(diào)調(diào)整的強(qiáng)度什湘。
App Search Enhancements
對(duì)于應(yīng)用搜索闽撤,iOS10和Core Spotlight框架引入了一些增強(qiáng)功能:
- 應(yīng)用內(nèi)搜索
- 搜索延長(zhǎng)
- Crowdsourcing deep link popularity with differential privacy
- 確認(rèn)結(jié)果的可視化
新的CSSearchQuery類支持搜索那些你用Core Spotlight API指出的應(yīng)用內(nèi)內(nèi)容哟旗。使用這些API可以淘汰你應(yīng)用中單獨(dú)的搜索索引,以及更好的利用Spotlight強(qiáng)大的搜索技術(shù)饱亮,同時(shí)近上,匹配規(guī)則允許用戶在不離開你應(yīng)用的條件下搜索內(nèi)容壹无,就像他們?cè)贛ail,Messages和Notes中體驗(yàn)到的一樣斗锭。
在iOS9中岖是,使用搜索API(比如Core Spotlight璧微,NSUserActivity和web markup)在你的應(yīng)用做內(nèi)容索引,可以使用戶通過(guò)Spotlight和Safari搜索到這些內(nèi)容胞得。在iOS10中阶剑,你可以使用新的Core Spotlight符號(hào)來(lái)延續(xù)一個(gè)用戶的搜索牧愁,從Spotlight開始直到用戶打開你的應(yīng)用外莲。為了支持這個(gè)特性偷线,需要向Info.plist文件中添加CoreSpotlightContinuation關(guān)鍵字,并把它設(shè)置為YES乏奥,然后更新你的代碼來(lái)處理這種延續(xù)活動(dòng)的類型CSQueryContinuationActionType邓了。application:continueUserActivity:restorationHandler:方法中收到的NSUserActivity對(duì)象中的用戶信息字典里面包括CSSearchQueryString關(guān)鍵字骗炉,通過(guò)這個(gè)關(guān)鍵字取出來(lái)的值是一個(gè)包含用戶查詢信息的字符串材失。
iOS10引入了一種差異化的私有方式來(lái)幫助改善應(yīng)用搜索內(nèi)容的排名。iOS提交差異化的私有哈希表的子集到蘋果的服務(wù)器上熊响,比如用戶使用你的應(yīng)用汗茄,比如一個(gè)包含深鏈接URL的NSUserActivity對(duì)象铭若,這個(gè)對(duì)象中eligibleForPublicIndexing屬性會(huì)被設(shè)為YES叼屠,這樣的信息會(huì)被提交給iOS。差異化的私有哈希表允許蘋果來(lái)計(jì)算受歡迎的深鏈接和無(wú)法與用戶關(guān)聯(lián)起來(lái)的鏈接的頻率嫂侍。
當(dāng)你使用App Search API Validation工具測(cè)試你的網(wǎng)站的markup和深鏈接時(shí)挑宠,它現(xiàn)在可以更直觀的顯示結(jié)果各淀。包括支持markup在內(nèi)诡挂,相關(guān)的內(nèi)容被定義在Schema.org南捂。App Search API Validation工具可以幫助你查看Applebot網(wǎng)絡(luò)爬蟲都索引了哪些信息,比如title麦牺,description剖膳,URL和其他的一些支持的元素。你可以在https://search.developer.apple.com/appsearch-validation-tool這里訪問(wèn)到App Search API Validation工具甸饱。要了解更多有關(guān)深鏈接支持和添加markup的信息叹话,請(qǐng)查看Mark Up Web Content驼壶。
想了解更多有關(guān)如何使你網(wǎng)站中的圖片在Messages應(yīng)用中是可被搜索的,請(qǐng)查看Integrating with the Messages App泵喘。
Widget Enhancements
iOS10引入了一個(gè)新的鎖屏設(shè)計(jì)纪铺,新的鎖屏現(xiàn)在會(huì)顯示各種widget鲜锚。為了確保你的widget在任何背景下都看起來(lái)很好止状,你可以在合適的時(shí)候指定widgetPrimaryVibrancyEffect或widgetSecondaryVibrancyEffect(使用這個(gè)屬性來(lái)替換已經(jīng)棄用的notificationCenterVibrancyEffect屬性)怯疤。此外集峦,widget目前包括顯示模式的概念(以NCWidgetDisplayMode為代表),顯示模式允許你描述多少內(nèi)容是可用的摘昌,并且允許用戶來(lái)選擇緊湊的或是擴(kuò)展的視覺效果聪黎。
Apple Pay Enhancements
在iOS10中稿饰,用戶可以從網(wǎng)頁(yè)上露泊,或通過(guò)Siri和地圖的互動(dòng)來(lái)使用Apple Pay進(jìn)行簡(jiǎn)單和安全的支付惭笑。對(duì)于開發(fā)者來(lái)說(shuō)生真,iOS10引入了可以同時(shí)在iOS和watchOS上使用的新API柱蟀,支持動(dòng)態(tài)支付網(wǎng)絡(luò)的能力产弹,和新的沙盒測(cè)試環(huán)境痰哨。
iOS10引入新的API幫助你整合Apple Pay到你的網(wǎng)站匾嘱,當(dāng)你的網(wǎng)站支持Apple Pay霎烙,在iOS或OS X上使用Safari進(jìn)行網(wǎng)頁(yè)瀏覽的用戶就能使用他們iPhone或Apple Watch中Apple Pay綁定的卡進(jìn)行支付。想了解更多游昼,請(qǐng)查閱ApplePay JS Framework Reference烘豌。
PassKit框架(PassKit.framework)引入的API使你可以在某些UIKit不支持的地方使用Apple Pay廊佩。具體說(shuō)來(lái)靖榕,PKPaymentAuthorizationController和PKPaymentAuthorizationControllerDelegate可用的特性由PKPaymentAuthorizationViewController和它的delegate提供茁计,但這些并不依賴UIKit。雖然新的API只是對(duì)于要在watchOS和某些intents下支持Apple Pay才是必須的瓶蝴,但我們還是推薦對(duì)于所有的代碼都做適配,這樣你就可以用一個(gè)代碼庫(kù)提供更廣泛的Apple Pay支持劲绪。(要了解更多有關(guān)intents和Siri的集成,請(qǐng)查看SiriKit歉眷。)
PassKit框架也添加了這種特性汗捡,即允許卡片發(fā)行方在他們的應(yīng)用中展示他們的卡片扇住。具體而言盗胀,PKPaymentButtonTypeInStore按鈕類型允許你為一張卡顯示一個(gè)Apple Pay按鈕,presentPaymentPass:方法允許你以編程的方式展示一個(gè)卡片(presentPaymentPass:方法在PKPassLibrary中定義)女阀。
當(dāng)一個(gè)新的支付網(wǎng)絡(luò)變的可用浸策,你的應(yīng)用可以自動(dòng)支持新的網(wǎng)絡(luò)而不需要你修改或重新編譯你的應(yīng)用庸汗。availableNetworks方法讓你可以在運(yùn)行時(shí)發(fā)現(xiàn)用戶設(shè)備上可用的網(wǎng)絡(luò)逻锐。此外昧诱,supportedNetworks屬性得到了擴(kuò)展,它可以拿到一些支付提供商的名字并把它作為參數(shù)凶掰。你的應(yīng)用可以自動(dòng)的支持任何支付提供商支持的網(wǎng)絡(luò)懦窘。想了解更多畅涂,請(qǐng)查閱https://developer.apple.com/apple-pay/道川。
iOS10引入一個(gè)新的測(cè)試環(huán)境,它讓你可以直接在設(shè)備上測(cè)試卡片臊岸。測(cè)試環(huán)境會(huì)返回加密的測(cè)試支付數(shù)據(jù)帅戒。要使用此環(huán)境,請(qǐng)按照以下步驟:
1. 在iTunes Connect中創(chuàng)建一個(gè)測(cè)試用的iCloud賬戶钟哥。
2. 在你的設(shè)備上登錄這個(gè)賬號(hào)瞪醋。
3. 設(shè)置用于測(cè)試所需的區(qū)域装诡。
4. 使用https://developer.apple.com/apple-pay/中列出的測(cè)試卡片鸦采。
注意:當(dāng)你切換iCloud賬戶渔伯,環(huán)境也會(huì)自動(dòng)切換。
你還是必須使用實(shí)際卡片在生產(chǎn)環(huán)境中測(cè)試付款功能选浑。
Security and Privacy Enhancements
iOS10引入幾個(gè)變化來(lái)幫助您提高代碼的安全和維護(hù)用戶數(shù)據(jù)的隱私性玄叠。想了解更多读恃,請(qǐng)查閱https://developer.apple.com/security/。
- Info.plist文件中新的NSAllowsArbitraryLoadsInWebContent關(guān)鍵字為您提供了一個(gè)便捷的方式來(lái)允許任意Web頁(yè)面加載疹吃,當(dāng)為你的應(yīng)用的其它部分保持ATS 保護(hù)萨驶。
- SecKey API包含了對(duì)非對(duì)稱密鑰生成的改進(jìn)篡撵。使用SecKey API替換棄用的Common Data Security Architecture(CDSA)中的若干API。
- RC4對(duì)稱加密套件現(xiàn)在對(duì)于所有SSL/TLS鏈接都是默認(rèn)不可用的,Secure Transports API中的SSLv3也不再支持了帮哈。推薦你盡快停止使用SHA-1和3DES加密算法娘侍。
- UIPasteboard類支持Clipboard功能,這個(gè)功能允許用戶在設(shè)備間進(jìn)行拷貝和粘貼操作嚎杨。你可以使用其中的API來(lái)為一個(gè)特定的設(shè)備限定一個(gè)剪貼板枫浙,并設(shè)置一個(gè)過(guò)期時(shí)間古拴,在此時(shí)間之后黄痪,剪貼板將被清空。此外是嗜,named pasteboards不再是持久化的-作為代替鹅搪,你應(yīng)當(dāng)使用shared containers- 同時(shí)“Find” pasteboard(就是說(shuō)涩嚣,pasteboard被UIPasteboardNameFindconstant識(shí)別)是不可用的掂僵。
- 你必須通過(guò)在Info.plist文件中包含適當(dāng)?shù)哪康淖址P(guān)鍵字來(lái)靜態(tài)的聲明你應(yīng)用中打算用到的受保護(hù)數(shù)據(jù)類锰蓬。例如,你必須包含NSCalendarsUsageDescription關(guān)鍵字來(lái)訪問(wèn)用戶的日歷數(shù)據(jù)麻顶。如果你不包含明確目的的字符關(guān)鍵字,你的應(yīng)用將會(huì)在訪問(wèn)相關(guān)數(shù)據(jù)的時(shí)候退出队萤。
CallKit
CallKit框架(CallKit.framework)使得VoIP應(yīng)用能與iPhone UI整合到一起要尔,從而給用戶帶來(lái)更好的體驗(yàn)新娜。使用這個(gè)框架來(lái)讓用戶在鎖屏頁(yè)面查看和接聽打來(lái)的VoIP電話概龄,并在Phone應(yīng)用的個(gè)人收藏和最近通話視圖中管理來(lái)自VoIP通話的聯(lián)系人。
CallKit框架同樣也引入了應(yīng)用擴(kuò)展(app extensions)蚕键,這個(gè)擴(kuò)展可以進(jìn)行呼叫攔截和來(lái)電識(shí)別歪今。你可以創(chuàng)建一個(gè)應(yīng)用擴(kuò)展來(lái)將電話號(hào)碼和名稱關(guān)聯(lián)起來(lái)寄猩,或是告訴系統(tǒng)什么樣的號(hào)碼需要被攔截。
News Publisher Enhancements
News Publisher使用Apple News Format來(lái)讓發(fā)表設(shè)計(jì)精美的新聞替废、雜志固阁、網(wǎng)頁(yè)內(nèi)容到Apple News變的簡(jiǎn)單魔种。從各大雜志或新聞機(jī)構(gòu)這種獨(dú)立出版商,到個(gè)人博客刀崖,任何人都可以注冊(cè)。要開始使用或了解更多最新信息馆截,請(qǐng)?jiān)L問(wèn)https://newsresources.apple.com蜡娶。
Video Subscriber Account
iOS10引入了Video Subscriber Account框架(VideoSubscriberAccount.framework)來(lái)幫助應(yīng)用支持流媒體認(rèn)證或認(rèn)證視頻點(diǎn)播(也被稱為TV Everywhere)與他們的有線電視或衛(wèi)星電視供應(yīng)商認(rèn)證窖张。對(duì)于那些用戶注冊(cè)一次就能解鎖流媒體訂閱服務(wù)的應(yīng)用來(lái)說(shuō),使用這個(gè)框架中的API可以幫助你支持單一登錄體驗(yàn)合陵。
App Extensions
iOS10為那些可以創(chuàng)建應(yīng)用擴(kuò)展的人引入了一些新的擴(kuò)展點(diǎn),比如:
- Call Directory
- Intents
- Intents UI
- Messages
- Notification Content
- Notification Service
- Sticker Pack
此外碎赢,iOS10對(duì)于第三方鍵盤擴(kuò)展應(yīng)用有如下增強(qiáng):
- 通過(guò)使用UITextDocumentProxy類的documentInputMode屬性速梗,你可以自動(dòng)檢測(cè)文檔的輸入語(yǔ)言姻锁,然后改變你的鍵盤擴(kuò)展來(lái)匹配這種序言(如果支持)。如果你使用這種方式檢測(cè)輸入語(yǔ)言拷窜,你可以做每種語(yǔ)言的鍵盤切換篮昧,就像自帶的Messages應(yīng)用那樣懊昨。
- 新的handleInputModeListFromView:withEvent:方法讓鍵盤擴(kuò)展顯示系統(tǒng)的鍵盤選擇菜單(that is, the globe key menu)春宣。
一個(gè)鍵盤擴(kuò)展應(yīng)該把全局鍵放在相同的位置月帝,就像系統(tǒng)中對(duì)于每個(gè)方向上全局鍵的顯示一樣。并且其掂,如果你需要提供一個(gè)自定義的按鍵-比如支持鍵盤設(shè)置的按鍵-你
應(yīng)該將這個(gè)按鍵放在相同的位置款熬,就像系統(tǒng)鍵盤的聽寫鍵一樣。
要了解更多有關(guān)創(chuàng)建應(yīng)用擴(kuò)展的一般內(nèi)容惋鹅,請(qǐng)查看App Extension Programming Guide殉簸。
Additional Framework Changes
未完待續(xù)...