- (void)openURLContainingAPP{
//通过extensionContext借助host app调起app
[self.extensionContext openURL:[NSURL URLWithString:@"appextension://xxx"] completionHandler:^(BOOL success) {
NSLog(@"open url result:%d",success);
}];
}
数据共享

通过App Groups提供的同一group内app共同读写区域,可以用NSUserDefaults和NSFileManager两种方式实现extension和containing app之间的数据共享。
1 通过NSUserDefaults共享数据
保存数据
- (void)saveDataByNSUserDefaults{
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.c
om.xxx"];
[shared setObject:@"asdfasdf" forKey:@"widget"];
[shared synchronize];
}
读取数据
- (NSString *)readDataFromNSUserDefaults{
NSUserDefaults *shared = [[NSUserDefaults alloc] initWithSuiteName:@"group.c
om.xxx"];
NSString *value = [shared valueForKey:@"widget"];
return value;
}
2 通过NSFileManager共享数据
保存数据
- (BOOL)saveDataByNSFileManager{
NSError *err = nil;
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecuri
tyApplicationGroupIdentifier:@"group.com.xxx"];
containerURL = [containerURL URLByAppendingPathComponent:@"Library/Caches/
widget"];
NSString *value = @"asdfasdfasf";
BOOL result = [value writeToURL:containerURL atomically:YES encoding:NSUTF8StringEncoding error:&err];
if (!result) {
NSLog(@"%@",err);
} else {
NSLog(@"save value:%@ success.",value);
}
return result;
}
读取数据
- (NSString *)readDataByNSFileManager{
NSError *err = nil;
NSURL *containerURL = [[NSFileManager defaultManager] containerURLForSecuri
tyApplicationGroupIdentifier:@"group.com.xxx"];
containerURL = [containerURL URLByAppendingPathComponent:@"Library/Caches/
widget"];
NSString *value = [NSString stringWithContentsOfURL:containerURL encoding:
NSUTF8StringEncoding error:&err];
return value;
}
到这里,在Today中添加应用的widget就完成了,从Today中可以浏览预设的快捷服务,在文章iOS 10 Today Widget中接着说iOS 10的适配问题。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持ASPKU。
注:相关教程知识阅读请移步到IOS开发频道。










