我正在尝试从扩展启动容器应用程序。容器应用程序有一个有效的URL方案(例如://),我可以通过在Safari中导航到该URL来验证这一点。
当我尝试使用-NSExtensionContext的openURL:completionHandler:来启动容器应用程序时,我得到了一个不成功的回调,什么也没有发生。
iOS 8Beta2的变化表明openURL方法现在应该可以工作了,但这仍然是一个错误还是我做错了什么?
发布于 2014-07-05 17:24:51
我使用以下代码在Today扩展中工作:
NSExtensionContext *myExtension=[self extensionContext];
[myExtension openURL:[NSURL URLWithString:@"http://google.com"] completionHandler:nil];但是,它可能在Action Extensions中不起作用。从documentation
每个扩展点确定是否支持此方法,或在哪些条件下支持此方法。在iOS 8.0中,只有Today扩展点支持此方法。
发布于 2014-07-14 23:34:22
我的解决方案是创建一个UIWebView并加载一个包含url的请求
发布于 2014-12-01 19:51:55
如果使用unicode字符,则必须转换为utf8字符串。
NSString* toUtf8= [yourString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSString *urlString = [NSString stringWithFormat:@"openMap://?lat=%f&lon=%f&%@",[self.koordX floatValue],[self.koordY floatValue],toUtf8];
[self.extensionContext openURL:[NSURL URLWithString:urlString] completionHandler:nil];https://stackoverflow.com/questions/24538161
复制相似问题