Today Extension是iOS8中引入的一个新特性,如果需要实时获取的信息,可以在通知中心的Today视图中创建一个Today扩展实现,Today扩展又称为Widget.本文基于XCode8进行介绍.
如果需要拓展程序与主程序直接进行信息交换,需要申请组ID(group id),也就是在申请App ID时将主程序Bundle ID 与 拓展程序 Bundle ID设置为组,如下图
然后在XCode中创建Today:
创建成功后目录结构如下:
然后在Target - Capabilities中将App Groups打开,并将对应ID加入
然后修改 Xib或者用代码构建Today即可,最后效果如下:
传值给主程序:
[self.extensionContext openURL:[NSURL URLWithString:@"Test://Test=open"] completionHandler:^(BOOL success) {
}];
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
中通过url获取
注意点:
self.preferredContentSize = CGSizeMake(0, 110); // 设置高度110
// 缩进 iOS10之后无效
- (UIEdgeInsets)widgetMarginInsetsForProposedMarginInsets:(UIEdgeInsets)defaultMarginInsets{
return UIEdgeInsetsZero;
}