flutter如何实现拨打电话功能

在Flutter中如何实现拨打电话的功能?我尝试使用url_launcher插件,但不知道具体该怎么调用系统拨号界面并传入电话号码。求一个完整的代码示例,包括权限配置和拨号逻辑的实现步骤。

2 回复

Flutter中可使用url_launcher包实现拨打电话。
代码示例:

import 'package:url_launcher/url_launcher.dart';

void callPhone(String phoneNumber) async {
  final url = 'tel:$phoneNumber';
  if (await canLaunch(url)) {
    await launch(url);
  }
}

需在pubspec.yaml添加依赖,并在Android/iOS配置权限。

更多关于flutter如何实现拨打电话功能的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在 Flutter 中实现拨打电话功能,可以使用 url_launcher 插件。以下是具体步骤和代码示例:

1. 添加依赖

pubspec.yaml 文件中添加:

dependencies:
  url_launcher: ^6.1.0

运行 flutter pub get 安装。

2. 代码实现

import 'package:flutter/material.dart';
import 'package:url_launcher/url_launcher.dart';

class CallPage extends StatelessWidget {
  final String phoneNumber = '10086'; // 要拨打的号码

  Future<void> _makePhoneCall() async {
    final Uri launchUri = Uri(
      scheme: 'tel',
      path: phoneNumber,
    );
    if (await canLaunchUrl(launchUri)) {
      await launchUrl(launchUri);
    } else {
      throw '无法拨打电话:$phoneNumber';
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: ElevatedButton(
          onPressed: _makePhoneCall,
          child: Text('拨打 $phoneNumber'),
        ),
      ),
    );
  }
}

3. 平台配置

  • Android:无需额外配置
  • iOS:在 ios/Runner/Info.plist 中添加:
<key>LSApplicationQueriesSchemes</key>
<array>
  <string>tel</string>
</array>

注意事项

  1. 真机测试时才会实际调用拨号界面
  2. 模拟器可能无法正常使用该功能
  3. 确保号码格式正确(纯数字,不含特殊字符)

这种方法会跳转到系统拨号界面并显示号码,用户确认后才会实际拨出,符合应用商店审核要求。

回到顶部