是否可以在同一个应用程序中处理 URL Scheme 的调用?
这是一个示例:我的应用程序中有一个 html 链接,打开会触发 safari。我想要做的是点击该链接,无论我在应用程序中的哪个位置,都会推送一个带有 web 视图的视图控制器。
如果这是可能的,我必须在哪里做?如果我处理 URL Scheme 的调用,我需要在应用程序的委托上进行。在这种情况下我应该在哪里做?如果视图控制器需要被推送,谁负责推送呢?当前在屏幕上的 appdelegate 或视图控制器?
谢谢 :)
是否可以在同一个应用程序中处理 URL Scheme 的调用?
这是一个示例:我的应用程序中有一个 html 链接,打开会触发 safari。我想要做的是点击该链接,无论我在应用程序中的哪个位置,都会推送一个带有 web 视图的视图控制器。
如果这是可能的,我必须在哪里做?如果我处理 URL Scheme 的调用,我需要在应用程序的委托上进行。在这种情况下我应该在哪里做?如果视图控制器需要被推送,谁负责推送呢?当前在屏幕上的 appdelegate 或视图控制器?
谢谢 :)
UITapGestureRecognizer
,如果您的链接在标签中:
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(openLink:)];
[yourLinkLabel addGestureRecognizer:gestureRecognizer];
gestureRecognizer.numberOfTapsRequired = 1;
gestureRecognizer.cancelsTouchesInView = NO;
如果它是在加载的网页内的链接UIWebView
,那么您可以使用:webView:shouldStartLoadWithRequest:navigationType
. 每次用户点击UIWebView
.
好吧,涉及视图控制器有点烦人。我发现使用 javascript 在页面中加载新链接/内容更容易。这样就涉及到一个 webview 并且数据/html 文件被打乱了。如果您需要更多信息,请与我们联系。
尝试这个。在当前控制器中使用此代码
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];