uniapp开发——纯原生渲染nvue调用uni.makePhoneCall没反应的处理办法

发布时间 2023-12-13 19:50:39作者: 逍遥云天

uni.makePhoneCall(OBJECT) | uni-app官网 (dcloud.net.cn)

正常情况下,manifest.json配置拨打电话的权限就可以了:

配置权限后重新打包,真机运行应该就可以正常的拨打电话了。

如果API没反应,那么可以试试下边这种不弹出询问框直接拨打电话的方法:

callMobile() {
      let mobile = this.mobile;
      return new Promise((succ, error) => {
        if (uni.getSystemInfoSync().platform == "android") {
          let main = plus.android.runtimeMainActivity();
          let Intent = plus.android.importClass("android.content.Intent");
          let intent = new Intent(Intent.ACTION_DIAL);
          let Uri = plus.android.importClass("android.net.Uri");
          let data = Uri.parse("tel:" + mobile);
          intent.setData(data);
          main.startActivity(intent);
          succ({ code: 0 });
        } else {
          uni.makePhoneCall({
            phoneNumber: mobile,
            success: () => {
              succ({ code: 0 });
            },
            fail() {
              error({ code: -1 });
            }
          });
        }
      });
    }

亲试这种方法有效,直接调用API没反应还是权限问题,但是官方文档没说太多,生态还是不太完善的。