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

原创 2016年05月30日 18:29:06

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,或者删除应用重新安装。

版权声明:本文为博主原创文章,未经博主允许不得转载。

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

1、在上一小节中,我们简单介绍了Today扩展的数据存储应用,但是对于共享内容比较多的话,单纯的用NSUserDefaults存储还是不够的,有同学可能会用数据库之类的存储方式,但数据库也是不太简单的...

iOS8新特性扩展(Extension)应用之一——Today扩展

iOS8新特性扩展(Extension)应用之一——Today扩展 一、理解扩展 1、简介 2、几种扩展模式 (1)今日视图扩展:today (2)分享功能扩展 (3)个性操作 (4)照...

iOS8新特性Extension之Today插件的代码测试

Today 视图的中扩展被称为插件,用户可以通过插件快速访问当前重要的信息,具体好处这里给个链接,请自行阅读,这里不再赘述,由于是新特性,特地拿来做个demo做测试,毕竟看文章是不能真正领略其中的实现...
  • mapboo
  • mapboo
  • 2014年11月26日 15:36
  • 1171

iOS新浪微博客户端开发(1)——新特性界面

看完了MJ老师的微博项目视频,准备自己动手写一下,记录开发中的一些感想。 1、首先判断是否第一次使用该版本,如果是,先跳转到新特性界面,否则,直接跳到主界面,代码: - (BOOL)applicati...

ios-新浪微博开发-13-新特性(1)

一款正式的软件 发过 应该具备新特性 我们可以通过设置新特性让用户了解到我们软件的一些新特性 下面简单来实现一下供大家参考 #warning 没有设置代理 ->_-> #impor...

IOS 10 适配系列_1_ iOS10 SDK 新特性

总览 距离 iPhone 横空出世已经过去了 9 个年头,iOS 的版本号也跨入了两位数。在我们回顾过去四五年 iOS 系统的发展的时候,不免感叹变化速度之快,迭代周期之短。iOS 7 翻天覆地的全...

iOS7新特性之TextKit(二)FontResizeDemo扩展

在写完了FontResize_Demo之后,在这个Demo的基础上我又进行了一些扩展。在这个过程中我又感受到了Xcode 5带来的一些新特性,感觉非常有用。在写这个扩展Demo时也遇到了一些大大小小的...

iOS新特性之扩展开发攻略 - Share Extension

1. 什么是扩展? 扩展( Extension )是 iOS 8 中引入的一个非常重要的新特性。扩展让 app 之间的数据交互成为可能。用户可以在 app 中使用其他应用提供的功能,而无需离开当...

iOS新特性之扩展开发攻略 - Share Extension

1. 什么是扩展? 扩展( Extension )是 iOS 8 中引入的一个非常重要的新特性。扩展让 app 之间的数据交互成为可能。用户可以在 app 中使用其他应用提供的功能,而无需离开当前的...

iOS8 SDK新特性之扩展详解

扩展(Extension)是iOS8中引入的一个非常重要的新特性。扩展让App之间的数据交互成为可能。用户可以在App中使用其他应用提供的功能,而无需离开当前的应用。        在iOS8系统之前...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS新特性扩展之Today分享(1)
举报原因:
原因补充:

(最多只允许输入30个字)