最近在对ios通知中心插件widget做一下技术验证,以下记录一些坑,以防以后忘记,如果是小白可以看看:
1.关于数据通讯,app groups的打开不仅要在原生app中,还得 在新建的widget中打开,两个都打开并勾选创建的app groups才能用userdefault实现数据通讯
2.通过FileManager进行widget和原生app通讯时,可以存储数据库,但路径只能为NSURL *documentsDirectory = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:@"group.xxx"];*
不能加上@"Library/Caches/widgetTest",否则会创建数据库失败
3.widget的没有展开和折叠按钮是因为还没设置widgetActiveDisplayModeDidChange方法,方法如下:
- (void)widgetActiveDisplayModeDidChange:(NCWidgetDisplayMode)activeDisplayMode withMaximumSize:(CGSize)maxSize {
if (activeDisplayMode == NCWidgetDisplayModeCompact) {
self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 110);
} else {
self.preferredContentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, 300);
}
}
4.若想不显示隐藏折叠按钮,把widgetLargestAvailableDisplayMode设置为折叠模式就可以了,写法为:self.extensionContext.widgetLargestAvailableDisplayMode = NCWidgetDisplayModeCompact;
本文分享了iOS通知中心插件Widget的开发经验,包括appgroups使用、数据通讯方式、展示模式切换及隐藏折叠按钮等关键实践。

1584

被折叠的 条评论
为什么被折叠?



