美文网首页iOS常用
iOS Today Extension

iOS Today Extension

作者: 那抹浮沉 | 来源:发表于2020-08-20 15:39 被阅读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:@"****"];

    相关文章

      网友评论

        本文标题:iOS Today Extension

        本文链接:https://www.haomeiwen.com/subject/khtdjktx.html