1***@qq.com
1***@qq.com
  • 发布:2020-12-07 17:25
  • 更新:2022-11-08 14:11
  • 阅读:2662

【报Bug】uniapp打包H5,放 app内,不能拨号

分类:uni-app

产品分类: uniapp/H5

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 10.15.5

HBuilderX类型: 正式

HBuilderX版本号: 2.9.8

浏览器平台: 手机系统浏览器

项目创建方式: HBuilderX

操作步骤:

在app内创建wkwebview,加载url,点击“呼叫”不能拨号。
ios内是wkwebview。安卓内加载url的容器不知道是什么,一样不能拨号。

预期结果:

拨号

实际结果:

点击呼叫没有反应

bug描述:

uniapp打包放H5,不能拨号(号码存在,能打印),代码在47行和255行。
uni.makePhoneCall({
phoneNumber: this.listData[index].phoneNumber,
success: (res) => {
console.log('调用成功!');
console.log(res);
},
fail: (res) => {
console.log('调用失败!');
console.log(res);
}
})
方法调用成功了,但没有显示

2020-12-07 17:25 负责人:无 分享
已邀请:

最佳回复

1***@qq.com

1***@qq.com (作者)

问题已解决。
问题:uniapp打包H5,放app webView内不能拨号(打电话)。
真机调试机型:iPhone XR、华为。
安卓的我不太懂,说一下ios的。
uni.makePhoneCall、 a 标签、js直接拨号适合2020年10月中旬以前。
10月后,苹果官方强制要求开发人员使用WKWebView,弃用UIWebView。WKWebView不支持 a 标签、js等方式直接拨号。
解决方案:H5和ios都导入jsBridge库,H5点击按钮拨号,通过herf传出信号,比如:跳转http://www.baidu.com?mobile=130****0000。
uniapp导入jsBridge库:
manifest.json>H5配置>设置index.html模板路径。
index.html模板创建:在uniapp项目根目录下创建html文件(新建自定义文件,后缀html),文件名随意。我的文件名字mould.html。通过<script></script>标签导入jsBridge库。

1、app内监听webview的url。
2、拿到http://www.baidu.com?mobile=130****0000。
3、拦截跳转(我们只要拨号,不是真的跳转到百度去)。
4、解析url获得号码。
5、app调用原生方法拨号。

1***@qq.com

1***@qq.com (作者)

上面的回答没有写好,上面的回答是两个解决办法。
当时刚写完文档,神志不清。
总结一下:
方法1:herf,跳转,app内拦截url,解析url拿到参数。
方法2:导入jsbridge,发出消息并且传参,app内收到消息,拿到参数,做对应事件处理。

1***@qq.com

1***@qq.com (作者)

扫描的二维码

1***@qq.com

1***@qq.com

请问是app中嵌套h5拨打电话 是app去拦截然后再调用plus拨打手机号的吗 或者能看下代码吗 感谢

要回复问题请先登录注册