HarmonyOS 鸿蒙Next web页面电话有标准的phone标识,点击却无法跳转拨号盘

HarmonyOS 鸿蒙Next web页面电话有标准的phone标识,点击却无法跳转拨号盘

问题描述:web页面电话有标准的phone标识,ios & android 均可以跳转拨号盘,鸿蒙却无法跳转拨号盘,鸿蒙webview可能存在缺陷。

2 回复

参考这个demo:

import web_webview from '@ohos.web.webview';
import { BusinessError } from '@kit.BasicServicesKit';
import { call, observer } from '@kit.TelephonyKit';

@Entry
@Component
struct WebComponent {
  controller: web_webview.WebviewController = new web_webview.WebviewController();

  testMethod() {
    // 调用查询能力接口
    let isSupport = call.hasVoiceCapability();
    if (isSupport) {
      // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
      call.makeCall("021-50504728", (err: BusinessError) => {
        if (!err) {
          console.log("make call success.");
        } else {
          console.log("make call fail, err is:" + JSON.stringify(err));
        }
      });

      // 订阅通话业务状态变化(可选)
      class SlotId {
        slotId: number = 0
      }

      class CallStateCallback {
        state: call.CallState = call.CallState.CALL_STATE_UNKNOWN;
        number: string = "";
      }

      let slotId: SlotId = { slotId: 0 }
      observer.on("callStateChange", slotId, (data: CallStateCallback) => {
        console.log("call state change, data is:" + JSON.stringify(data));
      });
    }
  }

  build() {
    Column() {
      Web({ src: '', controller: this.controller })
        .onLoadIntercept((event) => {
          if (event) {
            if (event.data.getRequestUrl().startsWith('tel')) {
              this.testMethod()
              return true
            }
          }
          return false;
        })
    }
  }
}

更多关于HarmonyOS 鸿蒙Next web页面电话有标准的phone标识,点击却无法跳转拨号盘的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


针对HarmonyOS 鸿蒙Next web页面电话有标准phone标识但点击无法跳转拨号盘的问题,这通常是由于系统webview组件对tel协议的处理存在异常。以下是一些可能的解决方案:

  1. 检查系统版本:确保鸿蒙系统已经更新到最新版本,以修复可能存在的webview组件缺陷。
  2. 代码实现:在webview的加载拦截事件中,检测请求的URL。如果以"tel:"开头,则调用鸿蒙系统的拨号接口实现拨号功能。具体代码示例可参考鸿蒙开发文档中的相关章节。
  3. 权限检查:确保应用具有拨打电话的权限,并在代码中正确申请和使用该权限。
  4. 日志输出:在调用拨号接口时,添加错误处理和日志输出代码,以便跟踪和定位问题。

如果以上方法均无法解决问题,可能是由于系统深层次的bug或兼容性问题导致。此时,建议联系鸿蒙系统的官方客服,以获取更专业的技术支持和帮助。官网客服地址是:https://www.itying.com/category-93-b0.html

回到顶部