HarmonyOS A页面调用系统的拨打电话api后,点击返回键,回不到A页面

调用拨打电话的api如下:

// 调用查询能力接口
let isSupport = call.hasVoiceCapability();
if (isSupport) {
  // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
  call.makeCall("4009998877", (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) => {
    WeLog.debug(TAG,"call state change, data is:" + JSON.stringify(data));
  });
}else {
  WeLog.error(TAG,"not hasVoiceCapability")
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.

拨打完电话后,无法回到A页面。我查看日志,发现一点击拨号,A页面执行了aboutToDisapear(),即A页面销毁了。我希望的结果是A页面不销毁,我拨号完成后,电话返回按钮就可以回到A页面

HarmonyOS
2025-01-10 08:29:59
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
fox280

参考如下:可以返回到应用页面,这里返回两次,逐级返回至应用页面

import { call, observer } from '@kit.TelephonyKit';
import { BusinessError } from '@kit.BasicServicesKit';


@Entry
@Component
struct Page {
  build() {
    Column() {
      Text('拨号')
        .padding(50)
        .onClick(this.initCall)
    }
  }

  initCall(){
    // 调用查询能力接口
    let isSupport = call.hasVoiceCapability();
    if (isSupport) {
      // 如果设备支持呼叫能力,则继续跳转到拨号界面,并显示拨号的号码
      call.makeCall("123456", (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));
      });
    }
  }
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
分享
微博
QQ
微信
回复
2025-01-10 11:34:42


相关问题
HarmonyOS 如何调用拨打电话界面
884浏览 • 1回复 待解决
HarmonyOS 拨打电话系统能力
1424浏览 • 1回复 待解决
HarmonyOS 拨打电话功能
588浏览 • 1回复 待解决
HarmonyOS 如何直接调起拨打电话
927浏览 • 1回复 待解决
申请拨打电话权限无效
6746浏览 • 1回复 待解决
HarmonyOS有没有拨打电话相关资料
1229浏览 • 1回复 待解决
HarmonyOS 判断是否有拨打电话权限
887浏览 • 1回复 待解决
web中如何拉起鸿蒙拨打电话功能
147浏览 • 0回复 待解决
HarmonyOS APP能否直接进行拨打电话
576浏览 • 1回复 待解决
升级鸿蒙系统打电话断音
10699浏览 • 1回复 待解决
HarmonyOS app调用打电话功能报错
877浏览 • 1回复 待解决