flutter中如何使用url_launcher实现拨打电话和发送短信功能

在Flutter项目中,我想通过url_launcher插件实现拨打电话和发送短信的功能,但不太清楚具体该如何操作。请问能否提供一个完整的代码示例?包括如何配置Android和iOS的权限,以及如何处理用户点击电话/短信链接时的回调?另外,url_launcher是否支持自定义短信内容和预填充电话号码?希望得到详细的实现步骤说明。

2 回复

在Flutter中使用url_launcher实现拨打电话和发送短信:

1. 添加依赖

dependencies:
  url_launcher: ^6.1.0

2. 拨打电话

launchUrl(Uri(scheme: 'tel', path: '10086'));

3. 发送短信

launchUrl(Uri(scheme: 'sms', path: '10086'));

需要添加权限(Android):

<uses-permission android:name="android.permission.CALL_PHONE"/>

注意:iOS需要在Info.plist中添加电话权限说明。

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


在 Flutter 中使用 url_launcher 包可以实现拨打电话和发送短信功能。以下是具体实现方法:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  url_launcher: ^6.1.11

2. 拨打电话功能

import 'package:url_launcher/url_launcher.dart';

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

// 调用示例
makePhoneCall('13800138000');

3. 发送短信功能

Future<void> sendSMS(String phoneNumber, String message) async {
  final Uri launchUri = Uri(
    scheme: 'sms',
    path: phoneNumber,
    queryParameters: {'body': message},
  );
  if (await canLaunchUrl(launchUri)) {
    await launchUrl(launchUri);
  } else {
    throw '无法发送短信:$phoneNumber';
  }
}

// 调用示例
sendSMS('13800138000', '你好,这是一条测试短信');

4. 权限配置(Android)

android/app/src/main/AndroidManifest.xml 中添加:

<uses-permission android:name="android.permission.CALL_PHONE" />

注意事项:

  1. iOS 无需额外配置权限
  2. 实际使用时建议添加错误处理
  3. 在真机上测试功能
  4. 确保电话号码格式正确(纯数字,不含特殊字符)

这些方法会调用系统默认的电话和短信应用,用户确认后才会执行相应操作。

回到顶部