打开应用商店时,从UIWebView中删除视图shouldStartLoadWithRequest

时间:2012-02-21 21:00:43

标签: ios uiwebview

我使用的webStoryViewController使用UIWebView来处理网页。当用户点击网络链接时,它会从其他屏幕以模态方式调用。如果找到应用商店链接,那么我有一个代码来解除我的视图并打开应用商店。它在应用程序商店中打开链接很好,但大多数时候都无法忽略我的视图。所以当我回到我的应用程序时,我看到一个空白的窗口。虽然它确实有效。有什么想法我每次都能做到这一点吗?提前谢谢!

这是我的代码

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType
{   
    NSURL *url = request.URL;

    if (![url.scheme isEqual:@"http"] && ![url.scheme isEqual:@"https"]) {
        if ([[UIApplication sharedApplication]canOpenURL:url]) {
            [webView stopLoading];
            [self dismissModalViewControllerAnimated:NO];
            [[UIApplication sharedApplication]openURL:url];
            return NO;
        }
    }
    else
       return YES;
}

1 个答案:

答案 0 :(得分:1)

我找到了解决方案。它正陷入竞争状态。因此,在应用程序进入后台之前,UIView没有足够的时间关闭视图。所以我像这样把延迟调用dismissModalView调用

[self performSelector:@selector(actionDismissView) withObject:nil afterDelay:0.2];

这就是诀窍!!