昨晚蘋果在舊金山召開了WWDC,看了WWDC2016直播,我們發現變得謹慎而開放的蘋果在新一版四大平臺系統中展示了很多變化,當然重中之重還是偉大的iOS。通過試用iOS10beta版,除了長大了的更強大的Siri主要感受到iMessage更加如微信般強大到除了一般的文字、圖片、表情、語音消息,還支持 ...
昨晚蘋果在舊金山召開了WWDC,看了WWDC2016直播,我們發現變得謹慎而開放的蘋果在新一版四大平臺系統中展示了很多變化,當然重中之重還是偉大的iOS。通過試用iOS10beta版,除了長大了的更強大的Siri主要感受到iMessage更加如微信般強大到除了一般的文字、圖片、表情、語音消息,還支持消息特效動畫、動態塗鴉消息、類似於發紅包轉賬的支付、推廣分享鏈接、媒體文件發送(。。。某信還好麽?);還有改進的地圖導航,支持語音、支持嘀嘀打車等;自帶的一堆長期沒有存在感的軟體終於可以卸載了,多了個HomeKit應用;陌生來電識別功能;通知欄、通知提醒消息格式和上拉麵板設計風格由之前簡約半透明的轉變為傻大白條,個人感覺變醜了!
接下來我們粗略解讀一下WWDC2016和官方文檔What's New in iOS10--https://developer.apple.com/library/prerelease/content/releasenotes/General/WhatsNewIniOS/Articles/iOS10.html#//apple_ref/doc/uid/TP40017084-SW1,我們來看看iOS 10 都給開發者帶來了什麼?
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。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裡加入:
<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string>
<key>NSContactsUsageDescription</key>
<string>contactsDesciption</string>
<key>NSMicrophoneUsageDescription</key>
<string>microphoneDesciption</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>photoLibraryDesciption</string>
其中這個string值可以隨意寫
2.需要註意的是在Xcode8上打開項目要小心,尤其是對於xib過程,在變動後可不要隨意點保存,否則當你回頭用Xcode7打開時時發現報錯了,Xcode保存的xib在xcode7上是識別不了的!
3.在Xcode8、iOS10SDK上新建iOS過工程擬將看到Message Application和Sticker Pack Application,後者是為iMessage表情包專門準備的,但是不需要代碼。