1

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

这是一个示例:我的应用程序中有一个 html 链接,打开会触发 safari。我想要做的是点击该链接,无论我在应用程序中的哪个位置,都会推送一个带有 web 视图的视图控制器。

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

谢谢 :)

4

4 回答 4

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.

于 2012-06-22T05:28:07.737 回答
2

请检查我的问题

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

谢谢

于 2012-06-22T05:36:38.810 回答
0

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

于 2012-06-22T05:40:28.277 回答
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];
于 2012-06-22T05:44:15.023 回答