App Extensions - 應用擴展程序

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

您可以創(chuàng)建應用程序擴展以啟用特定任務淋叶。例如阎曹,要讓用戶從Web瀏覽器發(fā)布到您的社交服務,您可以提供共享擴展煞檩〈ο樱或者,為了讓用戶了解自己喜歡的團隊形娇,您可以提供一個今日窗口小部件锰霜,在通知中心顯示當前的體育比分。您甚至可以創(chuàng)建一個應用程序擴展桐早,提供用戶可以使用的自定義鍵盤來代替iOS系統(tǒng)鍵盤。

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

App Extension的介紹

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


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

其實就是我們經(jīng)巢缶看到的Widget膨俐,但是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:動作擴展诀诊,在另一個應用程序的上下文中操作或者查看內(nèi)容

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

3.Broadcast UI Extension:廣播UI 擴展

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

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

6.Content Blocker Extension:內(nèi)容攔截器擴展

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

8.iMessage Extension:消息的擴展

9.Intents Extension:Intents擴展

10.Intents UI Extension:Intents UI擴展

11.Notification Content Extension:通知內(nèi)容擴展

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

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

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

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指定組合在應用項目中構(gòu)建產(chǎn)品的設置和文件蒜田。您可以向單個應用添加多個擴展Target(包含一個或多個擴展的應用稱為包含應用)。
開始開發(fā)應用擴展程序的最佳方法是使用Xcode為兩個平臺上的每個擴展點提供的模板之一选泻。每個模板都包含特定于擴展點的實現(xiàn)文件和設置冲粤,并生成一個單獨的二進制文件,該二進制文件將添加到包含應用程序的包中页眯。

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

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

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

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

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

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

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

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市糊啡,隨后出現(xiàn)的幾起案子拄查,更是在濱河造成了極大的恐慌,老刑警劉巖棚蓄,帶你破解...
    沈念sama閱讀 218,451評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堕扶,死亡現(xiàn)場離奇詭異碍脏,居然都是意外死亡,警方通過查閱死者的電腦和手機稍算,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評論 3 394
  • 文/潘曉璐 我一進店門典尾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人糊探,你說我怎么就攤上這事钾埂。” “怎么了科平?”我有些...
    開封第一講書人閱讀 164,782評論 0 354
  • 文/不壞的土叔 我叫張陵褥紫,是天一觀的道長。 經(jīng)常有香客問我瞪慧,道長髓考,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,709評論 1 294
  • 正文 為了忘掉前任弃酌,我火速辦了婚禮氨菇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘妓湘。我一直安慰自己查蓉,他們只是感情好,可當我...
    茶點故事閱讀 67,733評論 6 392
  • 文/花漫 我一把揭開白布多柑。 她就那樣靜靜地躺著奶是,像睡著了一般瓣距。 火紅的嫁衣襯著肌膚如雪兜叨。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,578評論 1 305
  • 那天瘫寝,我揣著相機與錄音初嘹,去河邊找鬼及汉。 笑死,一個胖子當著我的面吹牛屯烦,可吹牛的內(nèi)容都是我干的坷随。 我是一名探鬼主播,決...
    沈念sama閱讀 40,320評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼驻龟,長吁一口氣:“原來是場噩夢啊……” “哼温眉!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起翁狐,我...
    開封第一講書人閱讀 39,241評論 0 276
  • 序言:老撾萬榮一對情侶失蹤类溢,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后露懒,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體闯冷,經(jīng)...
    沈念sama閱讀 45,686評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡砂心,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,878評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了蛇耀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辩诞。...
    茶點故事閱讀 39,992評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖纺涤,靈堂內(nèi)的尸體忽然破棺而出译暂,到底是詐尸還是另有隱情,我是刑警寧澤洒琢,帶...
    沈念sama閱讀 35,715評論 5 346
  • 正文 年R本政府宣布秧秉,位于F島的核電站褐桌,受9級特大地震影響衰抑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜荧嵌,卻給世界環(huán)境...
    茶點故事閱讀 41,336評論 3 330
  • 文/蒙蒙 一呛踊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧啦撮,春花似錦谭网、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,912評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至织中,卻和暖如春锥涕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背狭吼。 一陣腳步聲響...
    開封第一講書人閱讀 33,040評論 1 270
  • 我被黑心中介騙來泰國打工层坠, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人刁笙。 一個月前我還...
    沈念sama閱讀 48,173評論 3 370
  • 正文 我出身青樓破花,卻偏偏與公主長得像,于是被迫代替她去往敵國和親疲吸。 傳聞我的和親對象是個殘疾皇子座每,可洞房花燭夜當晚...
    茶點故事閱讀 44,947評論 2 355

推薦閱讀更多精彩內(nèi)容