UIWebView无法检测电话号码链接。

3
我正在开发一个包含UIWebView的应用程序。
webView应该加载包含tel:链接的HTML页面:
<a href="tel:123456789">call me</a>

webView无法使“打电话给我”链接可点击。
我尝试了
webView.dataDetectorTypes = UIDataDetectorTypePhoneNumber

但它不起作用。
我查阅了所有StackOverflow的问答,但没有找到针对此问题的答案。
谢谢您的帮助, Nur

1
我已经按照你描述的方式编写了一个相同的虚拟代码,它在这里可以工作。NSString *str = @" <a href="tel:123456789">call me</a>"; webview.dataDetectorTypes = UIDataDetectorTypePhoneNumber;[webview loadHTMLString:str baseURL:nil]; - Bhupesh
2个回答

4

替换

<a href="tel:123456789"> call me </a>

使用

<a href="tel://123456789">call me</a>

希望对你有帮助。

这对我很有效。如果您想的话,可以使用以下委托方法:
  • (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { NSURL *url = request.URL; if ([url.scheme isEqualToString:@"tel"]) { [[UIApplication sharedApplication] openURL:url]; } return YES;
}
- sschunara

2
以下代码适用于我:
添加 Web 视图。
web = [[UIWebView alloc] initWithFrame:WEBVIEW_FRAME];
web.dataDetectorTypes = UIDataDetectorTypeLink | UIDataDetectorTypePhoneNumber;
NSURLRequest *req = [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"new" ofType:@"html"] isDirectory:NO]];
web.delegate  =self;
[self.view addSubview:web];

和委托方法

-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request
                                            navigationType:(UIWebViewNavigationType)navigationType
{
     if ([url.scheme isEqualToString:@"tel"])
     {
         [[UIApplication sharedApplication] openURL:url];
     }
}

以及我的HTML文件

  <html>
  <head>
  <h1>HTML PAGE</h1>
  </head>
  <a href="tel:123456789"> call me </a>
  </html>

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