首页 新闻 会员 周边

ios app 使用WKWebView加载H5页面,无法拨打电话?

0
悬赏园豆:100 [待解决问题]

由于app是用的外包公司做的,所以我们想做一个h5页面满足自己的需求,达到少量的金钱,但是在ios系统app上面使用a标签或window.location.href拨打电话都不行,但是在ios浏览器上是可以进行拨打的,请问这是什么原因啊?有没有什么解决办法

菜鸟wl的主页 菜鸟wl | 初学一级 | 园豆:16
提问于:2019-05-31 16:52
< >
分享
所有回答(1)
0

HTML的头部要添加一个meta文件
<meta name="format-detection" content="telephone=yes"/>

然后a标签href添加tel:
<a href="tel:xxxxxxxxxxx"></a>

wwh99 | 园豆:202 (菜鸟二级) | 2019-06-02 20:26

你好是这样的,在苹果浏览器可以,但是ios app不行,没反应

支持(0) 反对(0) 菜鸟wl | 园豆:16 (初学一级) | 2019-06-03 10:05

@菜鸟wl: 我刚才测试了一下, 用UIWebView是可以直接弹出拨打电话弹框的, wkwebview确实不行.
WKWebView还需要添加一个navigationDelegate代理方法

import "TestViewController.h"

import <WebKit/WebKit.h>

@interface TestViewController ()<WKNavigationDelegate>

@end

@implementation TestViewController

{
WKWebView *wkWebView;
}

  • (void)viewDidLoad {
    [super viewDidLoad];
    wkWebView = [[WKWebView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:wkWebView];
    wkWebView.navigationDelegate = self;
    NSURL url = [NSURL URLWithString:@"https://www.xxx.xxx"];
    NSURLRequest
    request = [NSURLRequest requestWithURL:url];
    [wkWebView loadRequest:request];
    }

  • (void)webView:(WKWebView )webView decidePolicyForNavigationAction:(WKNavigationAction )navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {
    NSURL URL = navigationAction.request.URL;
    NSString
    scheme = [URL scheme];
    if ([scheme isEqualToString:@"tel"]) {
    NSString resourceSpecifier = [URL resourceSpecifier];
    NSString
    callPhone = [NSString stringWithFormat:@"telprompt://%@", resourceSpecifier];
    dispatch_async(dispatch_get_global_queue(0, 0), ^{
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];
    });
    }
    decisionHandler(WKNavigationActionPolicyAllow);
    }

@end

支持(0) 反对(0) wwh99 | 园豆:202 (菜鸟二级) | 2019-06-03 12:55

@菜鸟wl:

支持(0) 反对(0) wwh99 | 园豆:202 (菜鸟二级) | 2019-06-03 12:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册