您的位置:

uniapp拨打电话完全指南

一、uniapp拨打电话实时录音

当你在uniapp中开发一个拨打电话的功能时,你可能会遇到需要实时录音的情况。这就需要你使用uniapp自带的API:uni.startRecord()进行录音。代码示例:


// 在拨打电话事件中调用录音API
uni.startRecord({
    success: function (res) {
        console.log('录音文件路径:' + res.tempFilePath);
    },
    fail: function (res) {
        console.log(res);
    }
});

在成功录音后,你可以将音频文件上传至服务器或进行其他操作。

二、uniapp拨打电话的坑

在uniapp中,不同平台对于拨打电话的API支持可能会有所差异。特别是在iOS平台中,有一些很容易被忽略的坑。在编写拨打电话功能时,需要注意以下几点:

1、iOS平台下,拨打电话需加"tel:"前缀。

2、iOS平台下,无法拨打带有特殊字符的电话号码。

3、在iOS13及以上版本中,如果用户未在设置中允许你的APP使用电话功能,则拨打电话将失败。你需要在APP中添加询问用户是否允许使用电话功能的提示。

4、在Android平台下,需要在manifest.json文件中添加拨打电话的权限:


"android": {
    "permissions": [
        "android.permission.CALL_PHONE"
    ]
}

三、uniapp拨打电话功能

uniapp中提供了一个拨打电话的API:uni.makePhoneCall(),具体使用方式如下:


uni.makePhoneCall({
    phoneNumber: '10086',
    success: function () {
        console.log('拨打电话成功!');
    },
    fail: function () {
        console.log('拨打电话失败!');
    }
});

在该API中,你需要传入电话号码,并可以在成功或失败后进行相应操作。

四、uniapp拨打电话功能兼容app

在uniapp中,你可以使用plus的API来调用原生APP功能,包括拨打电话。代码示例:


// 检查平台是否为APP
if (uni.getSystemInfoSync().platform == 'android' || uni.getSystemInfoSync().platform == 'ios') {
    uni.showModal({
        title: '温馨提示',
        content: '确定要拨打电话吗?',
        success: function (res) {
            if (res.confirm) {
                // 使用plus的API拨打电话
                plus.device.dial('10086', true);
            }
        }
    })
} else {
    // 非APP平台时,使用uniapp自带的API拨打电话
    uni.makePhoneCall({
        phoneNumber: '10086',
        success: function () {
            console.log('拨打电话成功!');
        },
        fail: function () {
            console.log('拨打电话失败!');
        }
    });
}

在这段代码中,首先检查当前平台是否为APP,如果是则使用plus的API拨打电话,否则使用uniapp自带的API拨打电话。

五、uniapp拨打电话回到页面不刷新

在uniapp中,如果你需要拨打电话并且保证在返回页面后不刷新当前页面,则可以通过uni.navigateTo()进行页面跳转,示例代码:


uni.navigateTo({
        url: '/pages/tel/tel'
    })

在目标页中,你可以进行拨打电话的操作,然后通过uni.navigateBack()返回到原始页面,此时原始页面将不会进行刷新。

总结

综上所述,uniapp拨打电话非常方便,但是在编写时需要遵循每个平台的规则,以保证功能的正确性和兼容性。