Widget小组件与主项目使用App Groups进行数据传递,通过网络传递数据应该也是可行的,这里说一下App Groups的方式
第一步:配置App Groups
小组件也需要添加App Groups并勾选,Xcode自动生成配置文件的话需要注意bundleId不能为*通配符,不然会报错生成失败
第二步:使用代码
App Groups可以共享文件和UserDefault
【NSUserDefaults 代码】
NSUserDefaults *userDefualt = [[NSUserDefaults alloc] initWithSuiteName:YourAPPGroupID];
【共享文件路径代码】
NSURL *groupURL = [[NSFileManager defaultManager] containerURLForSecurityApplicationGroupIdentifier:YourAPPGroupID];
【小组件中获取】
let userDefault = UserDefaults(suiteName:"YourAPPGroupID")
let groupURL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier:"YourAPPGroupID")