Ios8新特性-应用程序扩展
一.什么是应用程序扩展?
应用程序扩展不是一个应用,它是主体应用程序(containing app)中一个单独的包,并能生成单独的二进制文件供其他应用调用。
个人感觉,类似于WP中的启动器,把系统当个软件,启动器就是应用程序扩展;
二.与普通应用的关系
1.应用扩展不同于应用,但是需要基于应用去开发应用扩展,每个应用扩展都是独立于应用运行的二进制文件。
2.与主体应用程序不同,应用扩展实现的是一个特定的、狭义范围内的任务,并且要严格遵循扩展点的协议。
三、生命周期
1.生命周期开始于用户从某个应用中启动它;
2.当应用扩展完成载体应用发送的请求任务后,该扩展的生命周期也随之结束。
3.在对用户的操作做出响应的过程中,扩展会根据载体应用的请求立即开始执行任务;
4可以系统后台执行任务。
四、如何进行通信
1.当应用扩展在运行的时候,它只会直接和 host app 进行通信,而扩展和containing app之间不会直接通信;
假设微信做了一个分享的扩展,我们自己的APP去访问,host app 即我们自己的APP, containing app即微信;
2.当一个扩展需要和containing app进行通信时,只能在载体应用确定的上下文环境中进行间接通信,即微信和微信的扩展不在一个进程中,属于进程间通信;
通信方式有Open URL,共享内存;
五、如何开发
1.一个扩展程序只能对应一个扩展点,这些扩展点由Apple来定;
2.每一个应用扩展会对应一个Target,一个APP可以有多个应用扩展
3.包含扩展的应用必须提供一个扩展之外的功能,即扩展应用不是一个完整意义上的应用。
4.为了将扩展分发给使用者,需要提交一个包含扩展的应用到App Store。用户只要下载并安装了你的应用,那么同时也自动安装了你的应用扩展。
5.一个应用扩展必须要提供一个图标,以便用户选择和识别,通常情况下,应用扩展的图标与应用程序的图标是相同的。这点和WP中的启动器不太一样;
Ios8新特性-应用程序扩展的更多相关文章
- iOS8新特性(1)——UIAlertController
一.iOS8介绍 iOS8 新特性,主要是UI上进行了统一 1.UIAlertController 2.UIPresentaionController:管理所有通过modal出来的控制器(看笔记) 3 ...
- iOS8 新特性
iOS8新特性主要体现在4方面 1.UIAlertController 对alert&actionSheet的封装 UIAlertController.h 提示框按钮的选择 typedef N ...
- ios8新特性widget开发-b
os8发布已经有一段时间了,伴随着ios8同时也出现了许多新的特性,ios系统将会越来越开放,这是好事.其中一个新特性就是在下拉通知栏里加入了个性的widget,开发者可以自己定义widget的样式内 ...
- iOS8新特性
1. App Extension Programming Guide 2.LocalAuthentication.framework - Touch ID Authentication 3.Local ...
- iOS8新特性(1)-UIPopoverPresentationController使用
从iOS 8开始,苹果提出新的 UIPopoverPresentationController代替UIPopoverController: 新的UIPopoverPresentationControl ...
- 利用iOS8新特性计算cell的实际高度
在计算cell的实际高度是 我们一般是通过计算frame 拿到最底部一个控件的最大Y值从而的到cell 的高度 算来算去 比较麻烦 其实,iOS8已经提供了直接通过Cell高度自适应的方法了,根 ...
- iOS iOS8新特性--UIPopoverPresentationController
1.回顾UIPopoverController的使用,下面这份代码只能在ipad下运行 // 初始化控制器,SecondViewController类继承自UIViewController Secon ...
- iOS8新特性之基于地理位置的消息通知UILocalNotification
苹果在WWDC2014上正式公布了全新的iOS8操作系统. 界面上iOS8与iOS7相比变化不大,只是在功能方面进行了完好. ...
- iOS8新特性之交互式通知
目前分为四个推送:用户推送,本地推送,远程推送,地理位置推送. if (IS_IOS8) { //1.创建消息上面要添加的动作(按钮的形式显示出来) UIMutableUserNotification ...
随机推荐
- DWZ LookUp Suggest 教程
单个查找带回 jsp 代码 lookup.jsp <%@ page language="java" contentType="text/html; charset= ...
- 关于sql中constraint 前缀的用意(PK、UK、DF、CK、FK)
--主键constraint PK_字段 primary key(字段), --唯一约束constraint UK_字段 unique key(字段), --默认约束constrint DF_字段 d ...
- public animal this[int index]|索引器的使用
学习如何使用索引器,索引器的使用是public 类型 this[int index]{get{};set{}} ,访问通过类的实例(对象)加[i], 例如animal[i],就像访问数组一样,其实就是 ...
- jquery $.trim()方法使用介绍
$.trim(str)的作用是去掉字符串首尾空格 $.trim(str) 返回:string: 说明:去掉字符串首尾空格. 示例: 先看个错误代码: <input type="text ...
- UIView的frame的扩展分类,轻松取出x、y、height、width等值
一.引言: 在ios开发中,就界面搭建.控件布局时,都会很恶心的通过很长的代码才能取出控件的x.y.height.width等值,大大降低了开发效率.那为了省略这些恶心的步骤,小编在这里给UIView ...
- 使用Struts2 验证框架,验证信息重复多次出现
版权声明:本文为博主原创文章,未经博主允许不得转载. 问题描述:第一次提交表单.某个数据不符合规则,就会出现一条错误信息.再次提交,上次显示的错误信息不消失,又多出一条一模一样的错误信息.提交几次,就 ...
- MiZ702学习笔记12——封装一个普通的VGA IP
还记得<MiZ702学习笔记(番外篇)--纯PL VGA驱动>这篇文章中,用verilog写了一个VGA驱动.我们今天要介绍的就是将这个工程打包成一个普通的IP,目的是为后面的一篇文章做个 ...
- java大数--总结
BigInteger(高精度整数) 1.所在包: java.math.BigInteger 2.大数运算,以下返回类型均为BigInteger BigInteger a; BigInteger b; ...
- 关于CORS
前几天碰到CORS问题,只要在“Access-Control-Allow-Origin”响应头中添加对应域名即可. 今天做一个上传文件的demo,利用XMLHttpRequest向服务器发送post请 ...
- EDK中如何使用ISE中生成的IP
EDK中如何使用ISE中生成的IP: 网上上有说这个的文章,但是很复杂,也就是添加bdd文件,其实这些都不需要自己操作的,我们可以在EDK中import 中添加ngc文件,ngc文件就是core ge ...