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" />
注意事项:
- iOS 无需额外配置权限
- 实际使用时建议添加错误处理
- 在真机上测试功能
- 确保电话号码格式正确(纯数字,不含特殊字符)
这些方法会调用系统默认的电话和短信应用,用户确认后才会执行相应操作。

