在应用程序中打开html链接

时间:2012-06-22 05:23:32

标签: iphone objective-c ios url

是否可以在同一个应用程序中处理URL方案的调用?

这是一个例子: 在我的应用程序中有一个HTML链接,打开将触发safari。我想要做的是点击该链接,无论我在应用程序中的哪个位置,都可以通过webview推送视图控制器。

如果有可能,我必须在哪里做?如果我处理URL Scheme的调用,我需要在应用程序的委托上执行此操作。在这种情况下我应该在哪里做?如果需要推动viewcontroller,谁负责推送它?当前在屏幕上的appdelegate或视图控制器?

谢谢:)

4 个答案:

答案 0 :(得分:2)

  1. UITapGestureRecognizer,如果您的链接位于标签中:

    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openLink:)];
    [yourLinkLabel addGestureRecognizer:gestureRecognizer];
    gestureRecognizer.numberOfTapsRequired = 1;
    gestureRecognizer.cancelsTouchesInView = NO;
    
  2. 如果它是UIWebView中加载的网页内的链接,则您可以使用:webView:shouldStartLoadWithRequest:navigationType。每次用户点击UIWebView

  3. 中的链接时,都会调用此方法

答案 1 :(得分:2)

请查看我的Question

我遇到了同样的问题。希望它会对你有所帮助。

由于

答案 2 :(得分:0)

那么涉及视图控制器有点烦人。我发现使用javascript在页面中加载新的链接/内容更容易。这样就会涉及一个webview,并且数据/ html文件会被洗牌。如果您需要更多信息,请与我们联系。

答案 3 :(得分:0)

试试这个。 在当前控制器中使用此代码

WebViewController *objWebViewController     =   [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:nil];
                objWebViewController.m_strHtml=[NSString stringWithString:@"www.google.com"];//m_strHtml is a NSString variable in WebViewController class
                [self.navigationController pushViewController:objWebViewController animated:YES];
                [objContentWebViewController release];

在WebViewController中使用它

NSURL *url = [[NSURL alloc] initWithString:m_strHtml];
        NSURLRequest * req = [[NSURLRequest alloc] initWithURL:url];
        [url release];
        [Webview loadRequest:req];
        [req release];

您可以在Web视图中加载html,Web视图会打开其中的链接 作为默认值。使用以下代码。

m_strHtml=[[NSString alloc]initWithFormat:@"<html><body>%@</body></html>",m_strHtmlContent];//m_strHtmlContent is string variable to store the html content

        [Webview loadHTMLString:m_strHtml baseURL:Nil]; 
        Webview.backgroundColor=[UIColor clearColor];