在现代移动应用中,发送 SMS(短消息服务)是一个常见的功能,尤其是在用户验证或通知方面。本文将介绍如何在 Flutter 应用中实现发送 SMS 的功能。
1. 准备工作
在开始之前,请确保你已经设置了 Flutter 环境,并创建了一个新的 Flutter 项目。
2. 添加依赖
要在 Flutter 中发送 SMS,我们可以使用 sms
插件或者 url_launcher
插件。这里我们将使用 url_launcher
插件,因为它提供了更广泛的功能。
1
| flutter pub add url_launcher
|
在 pubspec.yaml
文件中添加以下依赖:
1 2 3 4
| dependencies: flutter: sdk: flutter url_launcher: ^6.3.1
|
然后运行命令来安装依赖:
3. 实现发送 SMS 的功能
接下来,我们将在 Flutter 应用中实现发送 SMS 的功能。以下是一个简单的示例:
3.1 导入必要的库
在你的 Dart 文件中,导入 url_launcher
库:
1 2
| import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart';
|
3.2 创建发送 SMS 的函数
创建一个发送 SMS 的函数,使用 url_launcher
来打开默认的短信应用程序:
1 2 3 4 5 6 7 8 9
| Future<void> sendSMS(String message, String phone) async { String smsUrl = 'sms:$phone?body=${Uri.encodeComponent(message)}';
if (await canLaunchUrlString(smsUrl)) { await launchUrlString(smsUrl); } else { throw '无法发送 SMS 到 $phone'; } }
|
3.3 构建 UI
在你的 Flutter 应用中,创建一个简单的 UI,用户可以输入电话号码和消息:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| class SmsSenderApp extends StatelessWidget { final TextEditingController phoneController = TextEditingController(); final TextEditingController messageController = TextEditingController();
SmsSenderApp({super.key});
@override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar( title: const Text('发送 SMS'), ), body: Padding( padding: const EdgeInsets.all(16.0), child: Column( children: [ TextField( controller: phoneController, decoration: const InputDecoration(labelText: '电话号码1'), keyboardType: TextInputType.phone, ), TextField( controller: messageController, decoration: const InputDecoration(labelText: '消息'), keyboardType: TextInputType.text, ), const SizedBox(height: 20), ElevatedButton( onPressed: () { sendSMS(messageController.text, phoneController.text); }, child: const Text('发送 SMS'), ), ], ), ), ), ); } }
|
3.4 运行应用
在你的 main.dart
文件中,运行 SmsSenderApp
:
1 2 3
| void main() { runApp(SmsSenderApp()); }
|