Today Extension and add group

1 建立一个新的 target app 类型选择today Extension  http://blog.csdn.net/wjsxiaoweige/article/details/39524291 phone Extension的建立



我们会发现多出来一个entitlements的东东,不要着急,一会我会告诉大家这个是怎么出来的

2 构建 today Extension app的sb 很简单,如果你的UI很复杂,这个就不管了




3 run 工程,看看我们的today Extension app效果,记得选择Today 这样才能直接看到效果




4 是不是很简单,但是这样展示的数据只能是固定的,我们需要的我们应用的实际数据,而不是毫无意义的数据,那么怎么和我们的应用联系到一起,这个就需要用到add group了
add group 是apple 提供的一种安全的数据共享方式

首先选择我们需要共享的应用,创建app groups

打开app group的按钮,这中间需要我们正确的配置appid 才能够上线,所以如果只是自己学习的话,忽略下面的红色感叹号吧







5 点击+号 创建一个Add a new container 填写名字 group.TodayDataExtensionDefaults ok完成。 同样的方法,在today extension app创建一个同样的new container


完成上面两步,你就会看到第一步entitlements这个东东了,这就是你要共享数据的容器。




6  下面 我们讲告诉你,如何把应用的数据,共享出去,我们用得是   NSUserDefaults  方法 代码如下

 NSUserDefaults * shareDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.TodayDataExtensionDefaults"];
    [shareDefaults setObject:@"this is the test1111" forKey:@"test"];
    [shareDefaults synchronize];



注意 是alloc方法,shareinstance是不能用的。

7 在TodayViewController中添加如下方法来监听usetdefault的变化




- (instancetype)initWithCoder:(NSCoder *)coder
{
    self = [super initWithCoder:coder];
    if (self) {
        [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultChaneg:) name:NSUserDefaultsDidChangeNotification object:nil];
    }
    return self;
}


8 在通知方法里改变today 控件的值


- (void)userDefaultChaneg:(id)sener
{
    NSUserDefaults * defaultes = [[NSUserDefaults alloc] initWithSuiteName:@"group.TodayDataExtensionDefaults"];
    NSString * string = [defaultes valueForKey:@"test"];
    NSLog(@"string = %@",string);
    
    self.myLable.text = string;
    
}



其它知识  我们可以创建一个快速打开我们应用的按钮

 NSURL * url = [NSURL URLWithString:@"readbook://a=1"];
    [self.extensionContext openURL:url completionHandler:^(BOOL success) {
        
    }];





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值