App Extensions - 應用擴展程序

應用擴展程序會增加您的影響力
通過應用擴展程序,您可以將自定義功能和內容擴展到應用之外,并在用戶與其他應用或系統(tǒng)進行交互時將其提供給用戶。

您可以創(chuàng)建應用程序擴展以啟用特定任務。例如,要讓用戶從Web瀏覽器發(fā)布到您的社交服務,您可以提供共享擴展?;蛘撸瑸榱俗層脩袅私庾约合矚g的團隊,您可以提供一個今日窗口小部件,在通知中心顯示當前的體育比分。您甚至可以創(chuàng)建一個應用程序擴展,提供用戶可以使用的自定義鍵盤來代替iOS系統(tǒng)鍵盤。

主要對App Extension進行介紹。請繼續(xù)往下看:

App Extension的介紹

官方給的說法是:App Extension可以讓你擴展你的APP的自定義功能和內容,使用戶可以在與其他應用或者系統(tǒng)進行互動的時候去使用它。翻譯的不一定準確,這樣說可能會好理解:我們平時看到的Widget、微信和QQ的share等等,都是App Extension,下圖是一些例子:


屏幕快照 2019-06-02 下午12.05.33.png

其實就是我們經(jīng)??吹降腤idget,但是Widget只是Today Extension,除了Today Extension,還有很多。

一個支持擴展的系統(tǒng)區(qū)域叫做一個extension point(擴展點)。每個擴展點的擴展都有自己獨有的使用方法和API。你可以根據(jù)你的需求來選擇不同的擴展。官方API里面提出了一個名詞叫:Host app,我們可以把它理解為宿主的App也就是提供應用擴展界面顯示或者功能的App。還有一個container app,我們可以把它理解為容器App,就像上圖的微信share extension,容器app就是微信。

擴展和app不同,擴展無法單獨上架AppStore。盡管你必須使用個app來包含并且分發(fā)你的extension,extension也是一個單獨的二進制文件,獨立于用于傳遞和分發(fā)的container app。

你可以通過File--->New --->Target來創(chuàng)建Extension,它和其他的target一樣,它和你的app project組合成為一個產(chǎn)品。


屏幕快照 2019-06-02 下午12.08.00.png
屏幕快照 2019-06-02 下午12.08.21.png

一個app可以有一個擴展,也可以有多個擴展。最好的創(chuàng)建擴展的方式就是通過Xcode提供的Extension種類選擇自己需要的來創(chuàng)建,里面包含了必要的API以及方法實現(xiàn)。

如果你想讓用戶去使用你的擴展,那么就需要把你的containing app發(fā)布到AppStore,當用戶安裝了你的Containing app,擴展也就安裝了。不同的擴展啟動的方式也不一樣,例如Today Extension,你需要Widget來展示到你的通知中心。擴展也不要亂用,擴展的最佳用戶體驗從來都是希望用戶操作更精簡、更快速,并且專注于單個任務。

Extension的種類

我們可以在Xcode的File--->New--->Target里面看到不同平臺的Extension,包括iOS、watchOS、tvOS、macOS等等。這里主要介紹iOS,主要包括以下幾種Extensions:

1.Action Extension:動作擴展,在另一個應用程序的上下文中操作或者查看內容

2.Audio Unit Extension:音頻單元擴展

3.Broadcast UI Extension:廣播UI 擴展

4.Broadcast Upload Extension:廣播上傳擴展

5.Call Directory Extension:呼叫目錄擴展

6.Content Blocker Extension:內容攔截器擴展

7.Custom Keyboard Extension:鍵盤擴展,例如第三方的鍵盤,搜狗輸入法,百度輸入法等。

8.iMessage Extension:消息的擴展

9.Intents Extension:Intents擴展

10.Intents UI Extension:Intents UI擴展

11.Notification Content Extension:通知內容擴展

12.Notification Service Extension:通知服務擴展

13.Photo Editing Extension:圖片編輯擴展,在照片app中編輯照片或者視頻

14.Share Extension:分享擴展,發(fā)布一個共享網(wǎng)站或者與其他應用共享內容。

15.Shared Links Extension:分享鏈接擴展

16.Spotlight Index Extension:Spotlight 索引擴展

17.Sticker Pack Extension:貼紙包擴展

18.Today Extension:Today擴展,可以快速獲取更新或者在通知中心的近日視圖中執(zhí)行一項快速任務。

Xcode和App Store幫助您創(chuàng)建和交付App Extensions

應用擴展程序與應用程序不同。雖然您必須使用應用程序來包含和傳遞擴展,但每個擴展都是一個獨立的二進制文件,它獨立于用于傳遞擴展的應用程序而運行。
您可以通過向應用添加新target來創(chuàng)建應用擴展程序。與任何Target一樣,擴展Target指定組合在應用項目中構建產(chǎn)品的設置和文件。您可以向單個應用添加多個擴展Target(包含一個或多個擴展的應用稱為包含應用)。
開始開發(fā)應用擴展程序的最佳方法是使用Xcode為兩個平臺上的每個擴展點提供的模板之一。每個模板都包含特定于擴展點的實現(xiàn)文件和設置,并生成一個單獨的二進制文件,該二進制文件將添加到包含應用程序的包中。

要向用戶分發(fā)應用擴展程序,請將包含應用程序提交到App Store。當用戶安裝包含應用程序時,還會安裝其包含的擴展程序。

安裝應用擴展程序后,用戶必須采取措施才能啟用它。通常,用戶可以在其當前任務的上下文中啟用擴展。例如,如果您的擴展程序是“今日”窗口小部件,則用戶可以編輯“通知中心”中的“今日”視圖以啟用擴展程序。在其他情況下,用戶可以使用“設置”(在iOS中)或“系統(tǒng)偏好設置”(在macOS中)來啟用和管理他們安裝的擴展程序。

用戶體驗不同上下文中的應用擴展

雖然每種類型的應用擴展程序都支持不同類型的任務,但是大多數(shù)擴展程序都有一些用戶體驗部分。在考慮設計擴展時,了解所選擴展點的用戶體驗非常重要。從較高的層面來說,所有擴展的最佳用戶體驗都是快速,簡化并專注于單個任務。

用戶通過與某些系統(tǒng)提供的用戶界面(UI)交互來打開您的應用擴展程序。例如,用戶通過激活應用程序中系統(tǒng)提供的“共享”按鈕并從顯示的列表中選擇擴展名來訪問“共享”擴展。

雖然大多數(shù)應用擴展程序至少提供了一些自定義UI元素,但用戶在輸入擴展程序之前不會看到自定義用戶界面。當用戶輸入您的擴展程序時,您的自定義用戶界面可以幫助向他們展示他們正在轉移到新的上下文中。由于用戶可以將您的擴展程序與當前應用程序區(qū)分開來,因此他們可以欣賞您提供的獨特功能。用戶將擴展意識視為單獨的實體也意味著他們可以識別和刪除行為不當或效果不佳的擴展。

為了讓用戶順利過渡到您的應用擴展程序,您通常希望平衡自定義設計與與擴展點關聯(lián)的UI。例如,最好讓您的小部件看起來像今天視圖中所屬的小部件。同樣,在您的照片編輯擴展程序中,它可以很好地創(chuàng)建與iOS中的照片協(xié)調的UI。

注意
即使您的應用擴展程序未顯示任何自定義用戶界面(圖標除外),用戶仍然了解您的擴展程序與當前應用程序不同,因為他們采取了特定操作來激活它。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容