iOS 扩展(Extension)概要篇

是iOS 8加入的一个强大功能,可以通过系统给我们的扩展接入点,来为系统的服务提供某些附加的功能,

iOS 8扩展的接入点有以下几个:
今日(Today)- 在下拉通知的“今天”的界面中添加一个小插件
分享(Share)- 点击分享按钮后,将网站或者图片通过应用分享
操作(Action)- 点击Action按钮后发送内容到应用
图片编辑(Photo Editing)- 在系统的照片应用中提供编辑的功能
文档管理(Document Provider)- 提供和管理文件内容
自定义键盘(Custom keyboard)- 自定义键盘和输入法

iOS 9 新增了4个:
音频单元(Audio Unit)- 为音乐App提供扩展功能,例如GarageBand
Spotlight索引(Spotlight Index)- Spotlight搜索扩展
共享的链接(Shared Links)- Safair共享的连接扩展
广告拦截(Content Blocker)- Safair广告拦截扩展

需要注意的几件事:

1、扩展在 iOS 中是不能以单独的形式存在,是随着容器 App(Container App)一起打包提供的。
2、扩展的生命周期和容器 App(Container App)本身的生命周期是独立的,它们是两个独立的进程,默认情况下互相不应该知道对方的存在。也就是说,扩展本身就是一个小型的App,App id也与容器App不一样。
3、提供扩展的方式是在 App 的项目中加入相应的扩展的 Target
4、扩展应该保持轻巧迅速,并且专注功能单一,在不打扰或者中断用户使用当前应用的前提下完成自己的功能点。

扩展和应用的交互:

上面提到了,扩展和容器应用是个独立的App,但是扩展可以共享容器应用本身的逻辑、界面和数据
1、使用iOS 8 新引入的自制 framework 的方式来组织需要重用的代码,这样在链接 framework 后容器App 和扩展就都能使用相同的代码了。
2、通过开启 App Groups 和进行相应的配置来开启在两个进程间的数据共享。这包括了使用NSUserDefaults进行小数据的共享,或者使用NSFileCoordinator和NSFilePresenter甚至是 CoreData 和 SQLite 来进行更大的文件或者是更复杂的数据交互。
3、可通过自定义的 url scheme ,从扩展向应用反馈数据和交互。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值