因为iOS 8.3更新我的共享扩展(使用URL Schemes调用我的主应用程序)停止工作。所以我发现我必须启动我的应用程序的UIWebView方法不再适用。我也尝试过Apple推荐的方法,使用NSExtensionContext,但仍然没有结果。有什么想法吗?我的代码如下:
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
[self.view addSubview: webView];
NSString *urlString = "com.myappscheme://shareextension";
NSString * content = [NSString stringWithFormat : @"<head><meta http-equiv='refresh' content='0; URL=%@'></head>", urlString];
[webView loadHTMLString:content baseURL:nil];
和
[self.extensionContext openURL:[NSURL URLWithString:urlString] completionHandler:^(BOOL success)
{
NSLog(@"fun=%s after completion. success=%d", __func__, success);
}];
我尝试从我的SLComposeServiceViewController控制器执行didSelectPost方法的两个代码块,之前它在以前的工作正常,然后将我的设备更新到iOS 8.3
答案 0 :(得分:3)
您可以尝试使用此代码,但是我不知道是否会被Apple接受。
UIResponder* responder = self;
while ((responder = [responder nextResponder]) != nil) {
NSLog(@"responder = %@", responder);
if ([responder respondsToSelector:@selector(openURL:)] == YES) {
[responder performSelector:@selector(openURL:) withObject:[NSURL URLWithString:@""]];
}
}
答案 1 :(得分:2)
extensionContext.openURL
仅适用于今日延期。 Apple没有提供公共API来实现这一点,而且在iOS 8.3中,Apple已经阻止了一些变通方法。这似乎是设计的。如果您认为需要此功能,请打开增强请求/错误报告。