介绍一下报错具体情景:
在这里插入图片描述

1、项目:uniapp H5
2、报错手机平台:安卓
3、使用方法:
(1)uni.makePhoneCall() 不兼容 Android,所以可以通过uni.getSystemInfo()进行版本判断操作;
(2)App自定义的拨打电话方法,需要用到与app进行交互的“桥”,这个可以问你的app同学或者了解一下"桥";

如果你和我的情况一样,你就可以这样了写了。

1、main.js 入口文件里定义(如果你用的情景不多,也可以写成自己的方法)

/**引入APP交互 桥 **/
import Bridge from './config/bridge.js'
// 这边是我们app童鞋的方法,大家可以参考一下
const bridgeType = {
  'chat': 1, // 打开app聊天
  'back': 2, // 调用app返回 handleName:jsBackAction
  'share': 3, // 调用app分享  handleName:jsShareAction
  'showHiddenNav': 4, // 是否显示原生导航栏 handleName:showOrHiddenNavigation
  'qq': 5, // 打开app qq
  'userInfo': 6, // 打开用户信息
  'tel': 7, // 打开用户信息
  'gps': 8, // 获取gps信息
  'doloadFile': 9, // jsDowloadFileApp
  'scanQrCode': 10, //调用摄像头二维码扫描
}
// 注册全局方法
Vue.prototype.$openTel = function(tel) {
  if (null == tel || tel == '') {
    alert("电话为空");
    return false;
  }
  //android 调用
  uni.getSystemInfo({
    success: function(res) {
      if (res.platform === 'android') {
        //tel
        var d = {
          'tel': tel
        };
        //调用app返回数据格式封装
        var objData = {
          'type': bridgeType.tel,
          'data': d,
          'handleName': "jsOpenAppTelFunction"
        };
        try {
          //桥
          if (null == Bridge || Bridge == '' || Bridge == undefined) {
            window.location.href = "tel:" + tel;
          } else {
            //调用你们自己的 app 桥
            Bridge.openAppFunction(objData);
          }
        } catch (e) {
          alert("打开电话失败");
        }
      } else {
        uni.makePhoneCall({
          phoneNumber: phoneNum,
          fail() {
            window.location.href = "tel:" + tel;
          }
        });
      }
    }
  });
}
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐