为iOS 8 开发应用扩展

通过应用扩展提升你的应用(lncrease Your Impact)

从iOS 8.0 和 OS X v10.10 开始,应用扩展允许你在应用外部提供自定义的功能或内容,以便用户可以在他们使用其他应用或iOS系统的时候使用到该项功能。你可以开发一个应用扩展来执行特定的任务;当用户使用了你的应用扩展后就能在多种环境下(a variety of contexts.)执行该任务。例如,你提供一个可以把内容分享到社交网络的应用扩展,用户可以在上网的时候通过应用扩展发表评论;你提供一个扩展来显示用户当前的运动成绩,用户可以“通知中心”里面显示,这样在他们打开“Today view”就可以看到最新的运动成绩;你创建一个自定义键盘的扩展,用户就可以用来替代iOS系统键盘。
例如下面这些 扩展:

APP扩展的类型

iOS 和 OS X 定义了几种类型的应用扩展,每一种扩展都对应系统的一个区域。比如分享、通知中心、iOS 键盘扩展等。把支持扩展的区域称为称为扩展点(extension point),当你创建扩展时每一个扩展点都定义了使用策略(usage policies)并提供了API。已你想提供的功能点为基础选择扩展点(extension point)。需要注意的是,当你针对某个扩展点开发应用扩展时,该应用扩展的功能必须要符合该扩展点的功能特性。

下面的表格罗列了iOS 和 OS X 里面的扩展点,并针对每个扩展点举例说明了你可以实现的任务

Extension point Typical app extension functionality
Today (iOS and OS X) Get a quick update or perform a quick task in the Today view of Notification Center(A Today extension is called a widget)
Share (iOS and OS X) Post to a sharing website or share content with others
Action (iOS and OS X; UI and non-UI variants) Manipulate or view content originating in a host app
Photo Editing (iOS) Edit a photo or video within the Photos app
Finder Sync (OS X) Present information about file sync state directly in Finder.
Document Provider (iOS; UI and non-UI variants) Provide access to and manage a repository of files.
Custom Keyboard (iOS) Replace the iOS system keyboard with a custom keyboard for use in all apps

因为系统为应用扩展提供了特定的区域,选择一个最符合你想提供功能的一个扩展区域是很重要的。例如,你想创建一个分享阅历的扩展,使用分享这个扩展点,在Xcode 扩展模板里选择 "Share Extension"

你开发的app扩展要精确的匹配上面表格列出的扩展点,你不能开发一个通用的app扩展来匹配一个以上的扩展点。

Xcode 和 App Store 帮助你创建并实现(deliver) 应用扩展

应用扩展和应用是不一样的,虽然你需要基于应用去包含并实现应用扩展,但是当通过应用来实现应用扩展的时候,每个应用扩展都是独立运行的二进制文件。

在一个app里面添加一个新的Target来新建应用扩展。和其他Target一样,扩展 Target 将设置信息和相关文件打包在Products文件下生成一个扩展名为.appex的包。你可以在一个app项目里面添加多个扩展Target。(一个app可以包含一个或多个应用扩展,该应用程序称为主体app(a containing app))

开发一个应用扩展最好的切入点是使用Xcode在iOS和OS X上为各个扩展点提供的模板。每个模板包含扩展点的具体实现文件和相关设置,并生成独立的二进制文件添加到应用程序的包中。

在iOS中,包含扩展的应用必须提供一个扩展之外的功能。而在OS X中没有这个硬性要求,一个包含扩展的应用不要求必须提供一个额外功能。

为了让用户使用到应用扩展,你需要提交一个包含扩展的app到App Store。当用户安装你的包含扩展的app时,app 包含的应用扩展同时也会安装。

当安装了应用扩展后,用户必须要手动开启它。通常,用户可以在他们当前任务的环境中启动扩展。如果你的扩展是Today widget,用户可以在通知中心里面的Today view编辑并添加你的扩展。在其他情况中,用户可以使用 iOS 中的“Settings”或者 OS X 中的“System Preferences”来启用和管理扩展。

用户在不同的使用环境下体验不同的应用扩展

虽然不用的应用扩展类型能完成不同的任务,但对大部分扩展来说,它们在用户体验上还是有一些共同点的。如果你准备开发一个应用扩展,有一点很重要,那就是要理解在你选择的扩展点中,用户体验是什么样的。从一个更高角度看,对于所有扩展来说,最佳的用户体验是快速、流畅以及只关注单一任务。

通常用户通过与系统提供的用户界面进行交互来开启应用扩展。比如说,用户在app中通过激活系统提供的分享按钮来访问 Share 扩展,并从展示的列表中选择扩展。

虽然大多数的应用程序扩展都提供了一些自定义的UI元素,但一般用户不会看到你的自定义用户界面,除非他们进入到应用程序扩展中。当用户进入应用扩展,你的自定义UI可以让用户知晓他们正进入一个新的上下文环境。由于用户可以把你的扩展和当前应用区别开来,所以他们会欣赏你提供的独特功能。当用户意识到扩展其实是独立运行的实体时,他们也可以确认并移除体验不好或功能不好的扩展。

为了让用户平滑过渡到你的应用程序扩展,你要斟酌自定义界面与扩展点界面的风格,做一个权衡。比如说,一个很好的方法就是让你的插件看起来像是通知中心中原生的Widget,再比如说照片编辑扩展,你应该创建一个和 iOS 中 Photos 应用风格相协调的用户界面。

即使你的应用程序扩展没有展示自定义UI(不包括图标),但用户仍然知道该扩展不同于当前的应用,因为它们需要采用特定的操作来激活。

以上内容是本人参考cocoachina.com的翻译结果,转载请注明出处

其他翻译查看 http://www.cocoachina.com/ios/20141023/10027.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343

推荐阅读更多精彩内容

  • Swift版本点击这里欢迎加入QQ群交流: 594119878最新更新日期:18-09-17 About A cu...
    ylgwhyh阅读 25,280评论 7 249
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 俗话说,“冷在三九,热在中伏”意思是一年中最热的日子在三伏,三伏又分为初伏,中伏,末伏,其中以中伏最为炎热。暑假在...
    _staunch阅读 381评论 0 0
  • 想做坚持阅读 338评论 0 0
  • 记得小的时候非常喜欢写东西,长大后却把这个爱好丢掉了。不知道是太忙了还是心态浮躁了。好久没有像今天这样一个人静静的...
    小资不小调阅读 153评论 0 0