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存储还是不够的,有同学可能会用数据库之类的存储方式,但数据库也是不太简单的...
  • sw_gegewu
  • sw_gegewu
  • 2016年05月31日 12:52
  • 250

IOS 应用 分享 扩展

IOS 应用 分享 扩展
  • HeroGuo_JP
  • HeroGuo_JP
  • 2016年04月13日 00:45
  • 1781

iOS8中Today Extension的使用

扩展(Extension)是iOS 8中引入的一个非常重要的新特性。扩展让app之间的数据交互成为可能。用户可以在app中使用其他应用提供的功能,而无需离开当前的应用。 iOS 8系统有6个支持...
  • ralbatr
  • ralbatr
  • 2015年03月11日 09:23
  • 9130

Today Extension 与 Host App 共享数据的3种方法

iOS App之间共享数据的方法主要有三种: Shared User Defaults、Shared Data Container、openURL API。 最近做了一个Today Extension...
  • wershest
  • wershest
  • 2015年08月20日 22:28
  • 1181

ios8新特性widget开发

ios8发布已经有一段时间了,伴随着ios8同时也出现了许多新的特性,ios系统将会越来越开放,这是好事。其中一个新特性就是在下拉通知栏里加入了个性的widget,开发者可以自己定义widget的样式...
  • kuloveyouwei
  • kuloveyouwei
  • 2015年03月02日 19:40
  • 21662

ios 分享扩展

1, 创建分享扩展 File --- New -- Target 2, 设置分享的时候必须要指定 一个扩展规则 3,设置 APP  Group 来实现 实现应用共享...
  • luckly_girl
  • luckly_girl
  • 2016年07月27日 17:44
  • 177

ios8 share extension 分享扩展 问题小结

ios8 的分享扩展问题总结,包括为什么加了分享扩展但是在device中显示不出来...
  • a1056244734
  • a1056244734
  • 2016年02月03日 15:11
  • 4083

iOS8扩展插件Extension的开发

一.iOS8扩展插件概述 WWDC14除了发布了OS X v10.10和switf外,iOS8.0也开始变得更加开放了。说到开放,当然要数应用扩展(App Extension)了。顾名思...
  • zzzzzdddddxxxxx
  • zzzzzdddddxxxxx
  • 2015年08月13日 14:48
  • 1170

iOS Today Extension/widget编程小记

本文高屋建瓴地从App Extensions讲解到Today Extension;介绍了如何从头开始创建一个Today Extension;探讨了一些经常碰到的问题;点出了Today Extensio...
  • lixing333
  • lixing333
  • 2015年08月31日 22:48
  • 3591

today extension 扩展使用

http://blog.csdn.net/ralbatr/article/details/44194389 效果图:
  • u013355871
  • u013355871
  • 2016年06月27日 16:16
  • 225
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS新特性扩展之Today分享(1)
举报原因:
原因补充:

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