您的位置:首页 > 移动开发 > IOS开发

iOS新特性扩展之Today分享(1)

2016-05-30 18:29 411 查看
1、在iOS 的新特性中,包含了几种特殊的分享,下面就首先介绍一下Today的分享扩展应用。

2、Today扩展的用处还是比较多的,利用Today扩展,我们不用进入到应用程序中就能够直接看到应用中的部分功能,例如中华万年历,在手机的今天列表中就能够看到天气情况。

3、首先扩展与应用之间的数据沟通是通过一个共同的存储区域完成的,这个区域就是App Group,通过App Group来完成数据的交互,既然要完成共享一个存储区域,那么久首先需要把桥梁建好,也就是首先是完成App Group的创建。下面就一步步完成吧。

(1)首先创建一个普通工程,这里我创建的是swift的一个工程,oc的工程步骤是相同的,这里就不介绍oc的了。



(2)创建工程之后,我们就需要添加Today扩展了,

按照下面的步骤完成,

首先添加一个Target,如下:



然后我们选择Today项:



点击next后,会弹出一个输入名称的界面,如下,



完成之后,点击finish会弹出一个提示框,用于激活扩展。


点击Activate,然后我们的Today扩展就创建好了。



(3)创建好扩展之后,就需要创建App Group共享存储区域

首先创建工程的App Group,



在第5步的时候,点击打开,会弹出一个提示框,由于iOS的应用与扩展之间的数据共享是比较严格的,所以这里必须填写一个App Store上已经认证的开发者账号才能通过,这里我就不截图了,在填写完账号之后,会出现下面的界面,



,点击那个加号,提示输入一个App Group的名称,类似group.com.公司域名的名称(自己看着取名,规范就好),填写完成之后,在名称前面打勾(选中),然后系统会默认生成一个文件:



然后再创建扩展的App Group,步骤和上面的一样:



不同的是,在第5步选择开发者账号之后,App group就会显示出来,然后选中(名称一定要和上次填写的一样),选中之后,在扩展文件下面也会生成一个文件,



这样之后,我们就把App Group的通道打通了,下面要做的就是数据的共享

4、数据的共享,意味着数据是要存储的,这里我们用NSUserDefaults存储数据,

首先在应用的界面中存储数据,

应用数据存储:

// 应用与应用扩展之间的数据交互(通过同一个数据存储区域进行交互)在添加App Group的时候,需要添加开发者账号的
let userDefault = NSUserDefaults(suiteName: "group.com.XXXX") // 参数就是添加的App Group的名称
userDefault?.setObject(button.currentTitle, forKey: "title") // 存储的数据是全局的,在整个应用中都可以拿来存取数据
userDefault?.synchronize() // 强制将数据写入磁盘,以免丢失数据


扩展数据读取

// 应用与应用扩展之间的数据交互(通过同一个数据存储区域进行交互)
// 读取数据
let userDefault = NSUserDefaults(suiteName: "group.com.XXXX") // 参数就是添加的App Group的名称,必须和存储时候的名称一样,否则不能成功读取数据
let title:String = userDefault?.objectForKey("title") as! String // 存储的数据是全局的,在整个应用中都可以拿来存取数据
self.city_View.text = title


这样的话,就完成了数据的共享了。

5、扩展文件介绍:

在创建好扩展并激活之后,系统会默认生成文件:TodayViewController.swift,MainInterface.storyboard,Info.plist3个文件,TodayViewController.swift和普通的文件类似,可以在文件中写代码数据,

MainInterface.storyboard界面是一个界面,和普通的storyboard类似,但也有不同(这是由于在今天列表中的展示方式的问题),我们可以往控制器中拖入控件,拖线设置属性等等,



6、到这里我们的Today扩展的简单应用就完成了,如果在操作界面的时候,今天列表中的展示并没有改变,建议clean一下Xcode,或者删除应用重新安装。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息