[译]AppExtension编程指南:扩展基础1

App Extension Programming Guide-App Extension Essentials AppExtension编程指南:扩展基础html

App Extensions Increase Your Impact 经过应用扩展提高你的应用编程

iOS8/OS X v10.10app

翻译自苹果官方文档 App Extension Programming Guide--App Extensions Essentialside

重要提示: 该文档是一个开发过程当中使用API或技术的预发布文档。Apple提供该文档的目的在于让开发者尽快熟悉新技术和新的编程接口,使得开发者针对苹果品牌设备进行开发。可是该文档会不断的更新,使用该文档提供的技术开发的软件应该基于最终操做系统软件和最终的文档进行测试。要时刻关注该文档的更新,以便了解新的API和技术特性。测试

当iOS 8.0和OS X v10.10发布后,一个全新的概念出如今咱们眼前,那就是应用扩展。顾名思义,应用扩展容许开发者扩展应用的自定义功能和内容,可以让用户在使用其余app时使用该项功能。你能够开发一个应用扩展来执行某些特定的任务,用户使用该扩展后就能够在多个上下文环境中执行该任务。好比说,你提供了一个能让用户把内容分享到社交网站的扩展,用户能够在阅读邮件信息或者上网时经过app扩展来发表评论。或者说,若是你提供了一个能展现当前比赛分数的扩展,那么用户能够把它放在通知中心,这样在他们打开Today view时就能看到最新的比分。你甚至能够开发一个提供自定义键盘的扩展,用户能够用它代替iOS系统自带的键盘。网站

APP扩展的类型

iOS和OS X定义了几种应用扩展的类型,每一种类型的扩展都对应系统中的一块区域,好比分享、通知中心以及键盘等。咱们把这些支持扩展的区域称为扩展点。每一个扩展点都定义了使用策略并提供了API,你能够用来针对该区域建立扩展。要注意的一点是,当你针某个扩展点开发应用扩展时,该应用扩展的功能必需要符合该扩展点的功能特性。ui

table 1-1 列出了iOS和OS X中的扩展点,并列举了对应扩展点的示例任务。操作系统

table 1-1

因为系统定义了扩展特定领域,因此当你在开发应用扩展时,很重要的一点是,你要选择最能匹配你想在app中提供的功能的区域。好比说你要开发一个分享信息的应用扩展,那么你只能选择分享扩展点,而不能使用Today或Action扩展点。插件

重要提示:你开发的app扩展要精确地匹配Table 1-1中列出的扩展点。你不能开发一个通用的扩展来匹配一个以上的扩展点,翻译

Xcode和App Store帮助你建立并交付应用扩展

应用扩展不一样于应用,虽然你须要基于应用去开发应用扩展,可是每一个应用扩展都是独立于应用运行的二进制文件。

当你要建立一个应用扩展时,须要在项目中建立一个新的Target。和其余 Target 同样,扩展 Target 将设置信息和相关文件打包在Products文件下生成一个扩展名为.appex的包。你能够在应用项目中建立多个扩展Target(一个应用程序能够包含一个或多个应用扩展,该应用程序称为主体应用程序)。

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

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

为了将扩展分发给使用者,你须要提交一个包含扩展的应用到App Store。用户只要下载并安装了你的应用,那么同时也自动安装了你的应用扩展。

当安装了应用扩展以后,用户首先必需要开启他们。一般,用户能够在他们当前任务的上下文环境中启动扩展。好比,若是你的扩展启用了“Today”通知,那用户能够在通知中心编辑“Today ”view 来添加你的扩展。在其余状况中,用户可使用 iOS 中的“Settings”或者 OS X 中的“System Preferences”来启用和管理扩展。

用户在不一样的情形下体验不一样的应用扩展

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

一般用户经过与系统提供的用户界面进行交互来开启应用扩展。好比说,用户在app中经过激活系统提供的分享按钮来访问 Share 扩展,并从展现的列表中选择扩展。一个应用扩展必需要提供一个图标,以便用户选择和识别,一般状况下,应用扩展的图标与应用程序的图标是相同的。

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

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

注意:即便你的应用程序扩展没有展现自定义UI(不包括图标),但用户仍然知道该扩展不一样于当前的应用,由于它们须要采用特定的操做来激活。

相关文章
相关标签/搜索