NSURL *url = [NSURL URLWithString:@"valid_webcal_url"];
if (![[UIApplication sharedApplication] openURL:url])
{
// failure callback
NSLog(@"%@%@",@"Failed to open url:",[url description]);
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:LCHLocalizedString(@"SUBSCRIBE_ERROR", nil) message:nil delegate:self cancelButtonTitle:@"Okay" otherButtonTitles: nil];
[alert show];
}所以我已经知道如何查看加载webcal时是否出现错误,但是我如何知道webcal何时加载成功呢?当点击"subscribe“按钮时,我会显示一个加载器,只需要知道何时关闭它。
发布于 2013-02-20 04:13:11
因为这是通过webcal协议使用openURL来检索项目,所以不存在应用程序和webcal检索的可视分离。
我要做的是在调用openURL之后侦听通知UIApplicationWillResignActiveNotification,当通知被触发时,我假设是webcal接管了我的openURL调用。
这是一项棘手的业务,也是一个基本的解决方案,但嘿,它是有效的!感谢您的所有帮助/建议。
发布于 2013-02-20 04:00:08
正如已经在评论中指出的,这将把你的应用程序放在后台,而不能保证自动返回。
假设你真的想调用一个网页(而不是做一个web api调用),你可能应该创建一个嵌入了UIWebView的UIViewController的自定义子类。
将您的子类设置为UIWebView的委托将允许您对失败/成功做出反应。您甚至可以使用- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType拦截和停止UIWebView调用
https://stackoverflow.com/questions/14964429
复制相似问题