1. Share Extension
1.1. Info.plist
1.1.1. NSExtensionActivationRule
分享支持的格式,有对应的 key 表示支持,没有或者值为 false 表示不支持
- NSExtensionActivationSupportsAttachmentsWithMaxCount
- NSExtensionActivationSupportsAttachmentsWithMinCount
- NSExtensionActivationSupportsFileWithMaxCount
- NSExtensionActivationSupportsImageWithMaxCount
- NSExtensionActivationSupportsMovieWithMaxCount
- NSExtensionActivationSupportsText
- NSExtensionActivationSupportsWebURLWithMaxCount
- NSExtensionActivationSupportsWebPageWithMaxCount
1.2. SLComposeServiceViewController
分享界面,如果要完全自定义界面,可以换成 UIViewController
1.3. 打开 Host App
参考 openURL:completionHandler: NSExtensionContext
的 openURL:completionHandler:
只支持 Today widget
。
所以采用下面的方式:
- (void)openHostApp {
UIResponder *responder = self;
SEL selector = NSSelectorFromString(@"openURL:");
while (responder) {
if ([responder respondsToSelector:selector]) {
[responder performSelector:selector withObject:[NSURL URLWithString:@"example://"]];
break;
} else {
responder = responder.nextResponder;
}
}
[self.extensionContext completeRequestReturningItems:@[] completionHandler:nil];
}