需要从UIWebView中在Safari中打开链接吗?

4

我已经将整个HTML文档存储在一个变量中,并使用转义序列进行了转义...其中包含一些锚点标签...如果点击这些标签,它应该在Safari中打开,而不是在我的应用程序Web视图中...

2个回答

4
你可以使用以下代码来实现这个功能。
   -(BOOL) webView:(UIWebView *)inWeb shouldStartLoadWithRequest:(NSURLRequest *)inRequest navigationType:(UIWebViewNavigationType)inType {
        if ( inType == UIWebViewNavigationTypeLinkClicked ) {
            [[UIApplication sharedApplication] openURL:[inRequest URL]];
            return NO;
        }

        return YES;
    }

1
我尝试了这个……在将URL传递给UIWebView时它有效……现在它不起作用了……还有其他问题吗? - Rajesh_Bangalore
您也可以直接插入URL名称。 - Nimit Parekh
1
是的...但我的要求是将该URL更改为包含整个文档的字符串...我已经完成了这个任务。现在我需要在Safari中的UIWebView中打开链接,我已经尝试了上述方法,但没有成功。 - Rajesh_Bangalore
我将这些东西实现到我的演示应用程序中,它可以正常工作。如果您想获取这些代码,请给我您的电子邮件地址(如果可能)。 - Nimit Parekh

3
您可以使用UIWebViewDelegate协议来实现这一点:
// assuming webView is a valid UIWebView
webView.delegate = self;

- (BOOL)webView:(UIWebView *)wv shouldStartLoadWithRequest:(NSURLRequest *)rq navigationType:(UIWebViewNavigationType)nt
{
    if (nt == UIWebViewNavigationTypeLinkCkicked) {
        [[UIApplication sharedApplication] openURL:[rq URL]];
        return NO;
    }

    return YES;
}

你的代码中有一个拼写错误:UIWebViewNavigationTypeLinkCkicked 应该是 UIWebViewNavigationTypeLinkClicked - gyimi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接