iOS 使用WKWebView加载h5页面无法调用拨打电话功能

iOS集成H5微信支付实现跳转与回调 iOS集成H5微信支付实现跳转与回调的解决方案 iOS微信H5支付>> 支付完成返回原APP 阅读详情

一般h5页面有联系我们然后点击拨打电话的功能,在使用的时候发现了UIWebView加载的H5,可以调用;但是WKWebView就是不行,解决WKWebView加载H5页面,无法调用拨打电话功能的问题

H5的拨打电话代码是

<a href="tel:13112345678">移动WEB页面JS一键拨打号码咨询功能</a>

解决的方法:在WKWebView的WKNavigationDelegate代理方法处理

解决代码如下:

// 处理拨打电话以及Url跳转等等

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {

    NSURL *URL = navigationAction.request.URL;

    NSString *scheme = [URLscheme];

    if ([schemeisEqualToString:@"tel"]) {

        NSString *resourceSpecifier = [URLresourceSpecifier];

        NSString *callPhone = [NSStringstringWithFormat:@"telprompt://%@", resourceSpecifier];

        /// 防止iOS 10及其之后,拨打电话系统弹出框延迟出现

        dispatch_async(dispatch_get_global_queue(0,0), ^{

            [[UIApplicationsharedApplication]openURL:[NSURLURLWithString:callPhone]];

        });

    }

    decisionHandler(WKNavigationActionPolicyAllow);

}


如果想了解如何在UIWebView和WKWebView上加载进度条请看我另一篇文章:

http://blog.youkuaiyun.com/wangxinxu521/article/details/77750596

demo的地址:

https://github.com/joinxinxu/WebLoad.git

WebKit 打电话失败的问题 关于WebKit 最近接手的一个app页面全部用H5写的,使用的是WebKit框架。我之前写的app也有H5页面,不过只有两页,用的是webView,全H5写app用WebKit是很有必要的,在这里推荐两篇文章快速了解WebKit: iOS 8 WebKit框架概览(上) iOS 8 WebKit框架概览(下) 打电话失败 然后,问题来啦。app有联系客服功能,点击客服电话,发现电话... 阅读详情

相关推荐

H5唤起原生拨号与短信功能:跨平台兼容性实战指南

在移动Web开发中,通过URI Scheme(如tel:和sms:)唤起手机原生功能是提升用户体验的关键技术。其原理是利用浏览器或WebView将特定协议链接交由操作系统处理,从而直接启动拨号盘或短信应用。这项技术的核心价值在于大幅缩短用户操作路径,将原本需要多步完成的复制、切换应用等操作简化为一步点击,显著提升在电商客服、O2O服务、企业咨询等场景下的转化率与交互效率。然而,其实现面临复杂的平台兼容性问题,尤其在涉及iOS安全策略、安卓碎片化以及微信等超级App的WebView拦截时。本文聚焦H5开发中的

weixin_30292843的博客 404

h5拨打电话 写法IOS无效

h5拨打电话 window.location.href 写法IOS无效写成 html vue写法 <div class="call" @click="call"><img src="../../../../assets/images/iphon.png"><span :class="{iscallone:iscallone}">拨打守护热线</spa...

weixin_39897287的博客 6505

iOS和h5互相调用通类,内含一个打电话的处理,并且防止多次弹出打电话的选择框

iOS和h5互相调用通类,内含一个打电话的处理,并且防止多次弹出打电话的选择框。 有这个通用处理类,能处理一切h5页面显示与回调。并且用双层代码实现了进度条。调用十分简单,h5页面调用ios客户端处理也很简单。

【H5页面嵌入到小程序或APP中实现手机号点击复制和拨号功能】

在H5界面嵌入到小程序和移动应用(安卓和iOS)中实现手指点击手机号弹出弹窗,包含呼叫和复制选项,是可以实现的。下面我将为你提供一个基本的示例,并解释在小程序、安卓和iOS中要做的支持工作。

m0_56026872的博客 7175

IOS 拨打电话(三种方式)

IOS 拨打电话(三种方式)

iOS 拨打电话代码的三种方式

本文给大家分享三种方式实现ios拨打电话的代码,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧

iOS开发 解决WKWebView加载的h5,无法调用拨打电话功能

h5的拨打电话代码是移动WEB页面JS一键拨打号码咨询功能 UIWebView加载的h5,可以调用;但是WKWebView就是不行,找了半天,最后解决,在WKWebView的WKNavigationDelegate代理方法处理,代码如下: // 处理拨打电话 - (void)webView:(WKWebView *)webView decidePolicyForNavigationActi

开发仔XG 1万+

微信小程序测试号开发后上传按钮灰色?三步快速切换正式AppID

本文详细解析了微信小程序测试号开发后上传按钮灰色的原因,并提供了三步快速切换正式AppID的解决方案。通过注册正式小程序账号、修改项目配置和重新编译上传,开发者可以轻松解决上传按钮不可用的问题,确保小程序顺利上线。

weixin_29291185的博客 1576

ios-WKWebView 拨打电话

-(void)webView:(WKWebView* )webView didStartProvisionalNavigation:(WKNavigation* )navigation { NSString *path= [webView.URL absoluteString]; NSString * newPath = [path lowercaseStri...

weixin_33840661的博客 355

【愚公系列】《AIGC辅助软件开发》041-如何使用 AI技术提升工作效率:AI辅助软件架构师实践

在数字化转型的浪潮中,软件架构师作为技术团队的核心,承载着系统设计与架构优化的重要责任。然而,随着项目复杂度的增加和技术环境的变化,架构师面临着前所未有的挑战。幸运的是,人工智能(AI)技术的迅猛发展为这一行业带来了新的机遇,帮助架构师提升工作效率、优化决策过程,并改善团队协作。本文将深入探讨AI如何辅助软件架构师的实际工作,具体分析AI在需求分析、架构设计、代码生成、测试和优化等环节的应用。

愚公智库 15万+

AD2S1210与DSP28335 SPI通信中的GPIO配置陷阱与解决

本文深入剖析了AD2S1210与DSP28335进行SPI通信时,因GPIO输入限定配置不当导致数据整体右移的典型问题。文章指出,错误地将MISO引脚配置为带采样周期的同步模式是根本原因,并提供了将输入选择限制正确设置为异步模式的解决方案。同时,总结了不同应用场景下GPIO输入限定的配置原则,为高速同步通信的稳定实现提供了关键指导。

weixin_29163857的博客 146

iOS开发 WKWebView加载的H5,无法调用拨打电话功能

h5的拨打电话代码是: <a href="tel:+8400000000" style="color: #4CA74F;float: right;">+84 00000000</a> 网上找了很多都没能解决 最后自己处理如下 #pragma mark - WKNavigationDelegate - (void)webView:(WKWebView *)webView...

听雨轩 919

超详细的YOLOv8安装与测试指南:让计算机视觉任务变得简单

python3+、Anaconda3或Miniconda3 Ultralytics提供了多种安装方法,包括pip、conda和Docker。通过pip包安装最新稳定版的YOLOv8,或者克隆Ultralytics GitHub仓库以获取最新版本。Docker可用于在隔离容器中执行包,避免本地安装。 最简单直接的方式就是直接使用pip方法直接安装。 也可以直接从GitHub仓库安装包。如果你想要最新的开发版本,这可能会很有用。确保你的系统上安装了Git命令行工具

CDBmax的博客 1万+

iOS 介绍使用UIWebView和WKWebView加载进度条的代码+demo

简介 如果项目支持iOS7之前的系统版本的话,可以做个系统判断,这里就不介绍了,这里还是推荐使用WKWebView,先介绍下使用这个的好处,然后介绍使用UIWebView和WKWebView加载进度条的代码。 开发App的过程中,常常会遇到在App内部加载网页,通常用UIWebView加载。这个自iOS2开始使用的网页加载器一直是开发的心病:加载速度慢,占用内存多,优化困难。如果加载网页多

974

数据标注工具:AiLabel.js实现标注 超详细教程 案例分享

背景:在前端开发过程中难免遇到针对图片的缩放平移;以及在图片上进行矢量数据、文本、标注的展示;如果你有上面的任何需求,恭喜你,找到组织了.... 在此背景下,AILabel.js出生了。 前面文章我们已经介绍过AiLabel.js了; https://blog.youkuaiyun.com/u012967771/article/details/113148527 npm下载地址:https://www.npmjs.com/package/ailabel github地址:https://github.com/d.

前端互助会 9365

TNS-12516及ORA-12516错误解决

在客户端进行sqlplus连接报错如下: ORA-12516: TNS: 监听程序找不到符合协议堆栈要求的可用处理程序 在/home/oracle/product/10.2.0/db_1/network/log/listener.log中查看到错误如下: TNS-12516: TNS:listener could not find available handler with matchin

KEL 2万+

APP中H5页面实现拨打电话功能

使用a标签 &amp;amp;amp;amp;lt;a href=&amp;amp;amp;quot;tel:400-0000-000&amp;amp;amp;quot;&amp;amp;amp;amp;gt;400-0000-000&amp;amp;amp;amp;lt;/a&amp;amp;amp;amp;gt; 此方法支持大多数浏览器,如失效,就在head标签里加上 &amp;amp;amp;amp;lt;meta name=

一只蠢村花的博客 1万+

十年芯片资深IC设计工程师面经系列(四)SDC约束

set_driving_cell:当我们的设计是模块级(Block level)的design时,我们的设计前面一般还有其他的设计,那么前面模块的输出便是我们模块的输入,5.1set_false_path:可以单独的时钟或者路径进行约束。set drive :当我们的设计是芯片级(Chip level)的顶层设计时,芯片外围电路要驱动的是负载较大的IO单元,故需要的驱动能力较强,:set_load 是指output端口的负载,设置的值会影响输出到端口的net上的电容,从而影响相应的路径延时。

weixin_47349046的博客 1773

ios WKWebview

iOS8之后,苹果推出了WebKit这个框架,用来替换原有的UIWebView,新的控件优点多多,不一一叙述。由于一直在适配iOS7,就没有去替换,现在仍掉了iOS7,以为很简单的就替换过来了,然而在替换的过程中,却遇到了很多坑。还有一点就是原来写过一篇文章 Objective-C与JavaScript交互的那些事以为年代久远的UIWebView已经作古,可这篇文章现在依然有一定的阅读量。所以在决...

qq_27909209的博客 1467

Android 17为什么会重写MessageQueue

DeliQueue 通过消除 MessageQueue 中的锁,提升了系统和应用的性能。合成基准测试: 得益于并发能力的提升(Treiber 栈)和更快的插入速度(最小堆),向繁忙队列进行多线程插入的速度比传统 MessageQueue 快了高达 5000 倍。Perfetto 追踪分析: 在从内部测试人员处获取的 Perfetto 追踪记录中,我们看到应用主线程在锁竞争上消耗的时间减少了 15%。

xiangzhihong8的专栏 270

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

填坑记(UI)

1. tableView刷新闪屏 场景:类似于聊天界面,快速多次发送消息,刷新界面并且滚动到最后一条 问题:scrollToRowAtIndexPath:滚动到最后时,会再次出现从上往下滚动的现象 原因:在tableview滚动到最后一条前,还未得出cell的height,就已经开始新的reloadData 解决: tableView.estimatedRowHeight = 0 参考链接: ht...

__skye的博客 321

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

【HarmonyOS】一文教你如何在H5页面中使用电话、定位及导航

今天我们继续在上一篇的基础上继续开发,这次我们要实现的功能是在H5页面中点击按钮实现:①拨打电话、②获取系统定位、③拉起第三方地图应用开启导航功能(本文以高德地图为例),本项目是基于API6的JS工程,项目中使用的是JS FA调用Java PA机制(Java中使用WebView组件加载H5页面),OK,下面一起来实战一下吧。我们这里获取的是LOCATION权限,需要在config.json文件的module中添加权限配置,HarmonyOS、H5页面、拨打电话、获取系统定位、跳转高德地图导航。

Mayism123的博客 2764

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

关于uniappH5安卓机拨打电话报错 tel:177*******6 的网页无法加载,因为: net::ERR_UNKNOWN_URL_SCHEME

介绍一下报错具体情景: 1、项目:uniapp H5 2、报错手机平台:安卓 3、使用方法: (1)uni.makePhoneCall() 不兼容 Android,所以可以通过uni.getSystemInfo()进行版本判断操作; (2)App自定义的拨打电话方法,需要用到与app进行交互的“桥”,这个可以问你的app同学或者了解一下"桥"; 如果你和我的情况一样,你就可以这样了写了。 1、main.js 入口文件里定义(如果你用的情景不多,也可以写成自己的方法) /**引入APP交互 桥 **/

名人卷耶 3027

关于iOS开发中使用WKWebView拨打电话的问题

今天做公司的项目,发现一个显示电话号码的cell点击后没反应,按照逻辑应该是点击之后弹出拨号界面的,遂前往相关的类里面查看代码,发现上一个人在cell的点击事件里是这样写的: NSString *phoneStr = [NSString stringWithFormat:@"tel:%@",phone]; WKWebView * callWebview = [[WKWebView alloc] init]; [callWebview loadRequest:[NSURLRequest requestWit

allocliu的博客 2396

h5 页面 唤起手机拨号功能

工作日志 随手笔记 仅供参考   &lt;meta name="format-detection" content="telephone=yes"&gt; //***在head 里面添加meta标签 &lt;div&gt;&lt;a href="tel:{{mobilephone}}"&gt;{{mobilephone}}&lt;/a&gt;&lt;/div

Acitylion的博客 4847
上一篇: Xcode 真机调试报错:This application's application-identifier entitleme
下一篇: ios implicit conversion of an objective-c pointer to 'NSString *__autoreleasing *' is disallowed wit
xinxu-dev
博客等级 码龄12年 16粉丝 45原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值