iOS開發-iOS10新特性及開發者主要注意點

看了WWDC2016直播,我們發現變得謹慎而開放的蘋果在新一版四大平臺系統中展示了很多變化,當然重中之重還是偉大的iOS。通過試用iOS10beta版,除了長大了的更強大的Siri主要感受到iMessage更加如微信般強大到除了一般的文字、圖片、表情、語音消息,還支持消息特效動畫、動態塗鴉消息、類似於發紅包轉賬的支付、推廣分享鏈接、媒體文件發送(。。。某信還好麼?);還有改進的地圖導航,支持語音、支持嘀嘀打車等;自帶的一堆長期沒有存在感的軟件終於可以卸載了,多了個HomeKit應用;陌生來電識別功能;通知欄、通知提醒消息格式和上拉麪板設計風格由之前簡約半透明的轉變爲傻大白條,個人感覺變醜了!

接下來我們粗略解讀一下WWDC2016和官方文檔What’s New in iOS10,我們來看看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.” 大概是可以做電話黑名單功能了。按我的理解,也就是說你的網絡電話可以拓展到系統電話中,鎖屏時可以利用系統電話UI代爲接聽而不必解鎖打開你的native App,再通過拓展關係把來電信息回調給你的native App

  • 9 App Extensions 其實上面也有提到,iOS 10最重要的開發特點就是允許第三方應用對自帶基礎app的拓展關聯, 全新 7 種 App Extension:

    • 1.Call Directory(VoIP回調)

    • 2.Intents(接Siri、Apple map等服務)

    • 3.Intents UI(接Siri、Apple map等服務的自定義界面)

    • 4.Messages(iMessage拓展)

    • 5.Notification Content(內容通知)

    • 6.Notification Service (服務通知)

    • 7.StickerPack(iMessage表情包)

  • 10 Custom Keyboard 對第三方鍵盤的改進 非常非常重要,第三方鍵盤一直都不能很方便的擁有長按地球鍵的功能,現在有了。通過 handleInputModeListFromView:withEvent: 可以彈出系統鍵盤列表。同時使用 documentInputMode 可以檢測輸入上下文中的語言,你可以對輸入方式進行一些類似於對齊方式的調整。

另外需要注意的是,和以往歷代iOS版本推出一樣,新陳代謝,有新SDK、新API的開放,也會有舊的API被遺棄,所以好好檢查你的項目,使用了被遺棄的API要儘快修改,以免不兼容!還有個要注意的問題 iOS10 對隱私權限的管理更爲嚴格 ,比如訪問的攝像頭、麥克風等硬件,都需要提前請求應用權限、允許後纔可以使用,或者現在要提前聲明,雖然以往要求不嚴格。

  • 1.在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.需要注意的是在Xcode8上打開項目要小心,尤其是對於xib過程,在變動後可不要隨意點保存,否則當你回頭用Xcode7打開時時發現報錯了,Xcode保存的xib在xcode7上是識別不了的!

  • 3.在Xcode8、iOS10SDK上新建iOS過工程擬將看到Message Application和Sticker Pack Application,後者是爲iMessage表情包專門準備的,但是不需要代碼。

發佈了32 篇原創文章 · 獲贊 9 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章