iOS常用

iOS Today Extension

2020-08-20  本文已影响0人  那抹浮沉

什么是Today Extension?

怎么创建?

怎么使用?

不想使用sb?

代码共享

数据共享

什么是Today Extension?

如下图,没一个日程块就是一个Today Extension


B6C418C8-BE4D-4633-A053-A33AD612423C.png

怎么创建?

1.打开你要添加此target的项目,如下点击+

1.png

2.之后选择Today Extension

2.png

3.输入项目名


3.png

4.弹出提醒,选择右侧Activate


4.png

5.查看target

5.png 6.png

6.创建完成,运行原项目(安装主app即安装了全部extension)


7运行项目.png

7.运行后,回到手机/模拟器首页,左滑至日程页,点击编辑


8.jpg

8.可以看到Today Extension ,添加 -> 完成


9.jpg

9.如下,显示默认 Hello World


10.jpg

怎么使用?

1.先看一下目录结构,包含一个vc和sb和info,其中vc和sb已经绑定


1结构.png

2.我们在sb中删除掉不用的内容,新建自己的一个按钮,来进行跳转到app


sb.png

3.运行项目,点击Today Extension 中的按钮,这时候是无效的
众所周知,想要跳转到另一个APP,要设置 schemes,并且另一方要调用openURL方法,但是这里调用方法略有不同

3.1 设置主APP的schemes

schemes.png

3.2 设置跳转,但是有个问题,发现方法内打断点根本不会执行,不过确实有这个方法实现才能跳转

- (IBAction)clickBtn:(id)sender {
    
    [self.extensionContext openURL:[NSURL URLWithString:@"yshtoday://"] completionHandler:^(BOOL success) {
        //程序退出,杀死状态一样可以调起
        NSLog(@"嗯,你说的对");
    }];
}

4.之后即可完成调起项目

不想使用sb?

1.删除自带的MainInterface.storyboard
2.删除 sb 的入口

53595180-A2C5-436B-A779-394EC6A21EAE.png
  1. 添加


    87F036CE-9F69-48FE-8EEC-8B7A3EAAF48D.png

4.之后即可在vc中正常实现,也不会出现实现方法中,断点无效的情况

代码共享

选中类/框架,选中图中选项,即可在TodayViewController中使用此类


FDEE9C76-0A71-411F-940B-C1E406CFDD04.png

数据共享

需要配置证书和描述文件,自行研究配置
1.创建app groups

CDE81A4A60BB1977B69F932FFD367AEB.jpg

2.点击app groups创建

B9F62CA9B6EC6BAE07757E8E61F345F0.jpg

3.添加app groups

50FF0FCAE2468964E7E602C9D24127F7.jpg

4.选中要添加的app groups,默认

DF12F36BD992861F934F75790139B6C6.jpg

5.添加完成

1C726841ACEB27FD49674301FCACE315.jpg
  1. 某类中如在AppDelegate中存值
    使用NSUserDefaultsNSFileManager进行数据共享/通信,这里使用NSUserDefaults演示
//创建具体的对应group的NSUserDefaults
//输入对应的group的名称,第5步中,app group中显示的group的字符串,选中未创建成功显示的是红色groups
NSUserDefaults *ud = [[NSUserDefaults alloc]initWithSuiteName:@"****"];
[ud setFloat:19.f forKey:@"age"];

7.在TodayViewController中取值
//跨target取值
NSUserDefaults *ud = [[NSUserDefaults alloc]initWithSuiteName:@"****"];
[ud objectForKey:@"****"];

上一篇下一篇

猜你喜欢

热点阅读