Flutter消息推送插件msg91的使用
Flutter消息推送插件msg91的使用
📣 msg91 - msg91.com官方API包装器(非官方Dart包)
API for msg91 - 安全且强大的API,用于SMS、Email、Voice、身份验证等。
功能
此包提供了通过msg91 API轻松发送短信的功能。
入门指南
只需安装该包并查看示例以了解用法。
使用方法
发送消息
import 'package:msg91/msg91.dart';
void main() {
String authKey = "YOUR_AUTH_KEY";
final msg91 = Msg91().initialize(authKey: authKey);
String templateId = "YOUR_TEMPLATE_ID";
String mobile = "911234567890";
Map<String, String> variables = {"name": "John Doe"};
// 发送到单个接收者
msg91
.getSMS()
.send(
flowId: templateId,
recipient: SmsRecipient(
mobile: mobile,
key: variables,
),
options: SmsOptions(
senderId: "SENDERID",
shortURL: false,
))
.then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 发送到多个接收者
String mobile2 = "911234567891";
msg91
.getSMS()
.sendMultiple(
flowId: templateId,
recipients: [
SmsRecipient(
mobile: mobile,
key: variables,
),
SmsRecipient(
mobile: mobile2,
key: variables,
)
],
options: SmsOptions(
senderId: "SENDERID",
shortURL: false,
))
.then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
}
获取账户余额
import 'package:msg91/msg91.dart';
void main() {
String authKey = "YOUR_AUTH_KEY";
final msg91 = Msg91().initialize(authKey: authKey);
msg91.getAccount().checkBalance(routeType: RouteType.wallet).then((value) {
print("Wallet Balance: $value");
}).catchError((err) {
print("Err Response: $err");
});
}
特性列表路线图
# | 特性 | 状态 |
---|---|---|
1 | 发送短信 | 🟢 |
2 | 发送OTP | 🟢 |
3 | 重新发送OTP | 🟢 |
4 | 验证OTP | 🟢 |
5 | 启动活动 | 🔴 |
6 | 检查余额 | 🟢 |
7 | 添加短信模板 | 🟢 |
8 | 发送WhatsApp消息 | 🔴 |
- 🔴 待处理
- 🟡 进行中
- 🟢 已完成
更多特性将在项目发展过程中添加,如果有任何人能为此包做出贡献将非常有帮助。
示例代码
以下是msg91_example.dart
文件的完整示例代码:
import 'package:msg91/msg91.dart';
void main() {
String authKey = "YOUR_AUTH_KEY";
final msg91 = Msg91().initialize(authKey: authKey);
String templateId = "YOUR_TEMPLATE_ID";
String mobile = "911234567890";
String mobile2 = "911234567891";
String? senderId = "SENDERID";
bool shortUrl = false;
Map<String, String> variables = {"name": "John Doe", "number": "1234567890", "email": "admin@localhost"};
// 发送到单个接收者
msg91
.getSMS()
.send(
flowId: templateId,
recipient: SmsRecipient(
mobile: mobile,
key: variables,
),
options: SmsOptions(
senderId: senderId,
shortURL: shortUrl,
))
.then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 发送到多个接收者
msg91
.getSMS()
.sendMultiple(
flowId: templateId,
recipients: [
SmsRecipient(
mobile: mobile,
key: variables,
),
SmsRecipient(
mobile: mobile2,
key: variables,
)
],
options: SmsOptions(
senderId: senderId,
shortURL: shortUrl,
))
.then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 添加模板
msg91
.getSMS()
.addTemplate(
template: "This is test Template ##mobile##, ##name##",
senderId: "SENDERID",
templateName: "TEMPLATENAME",
)
.then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 发送OTP
msg91.getOtp().send(mobileNumber: mobile, options: OtpOptions(templateId: templateId)).then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 验证OTP
msg91.getOtp().verify(otp: "123456", mobileNumber: mobile).then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 重新发送OTP
msg91.getOtp().resend(mobileNumber: mobile, type: ResendOTPType.VOICE).then((value) {
print("Response: $value");
}).catchError((err) {
print("Err Response: $err");
});
// 获取钱包账户余额
msg91.getAccount().checkBalance(routeType: RouteType.wallet).then((value) {
print("Balance: $value");
}).catchError((err) {
print("Err Response: $err");
});
}
希望这些信息对你有所帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
更多关于Flutter消息推送插件msg91的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter消息推送插件msg91的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用msg91消息推送插件的示例代码。这个示例将展示如何集成msg91的Flutter插件,并发送本地通知。
首先,确保你已经在Flutter项目中添加了msg91的依赖。在你的pubspec.yaml
文件中添加以下依赖:
dependencies:
flutter:
sdk: flutter
msg91_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要在Android和iOS平台上进行一些配置。
Android配置
- 在
android/app/src/main/AndroidManifest.xml
文件中添加必要的权限和Msg91的服务声明:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<application
... >
<service
android:name=".Msg91FirebaseMessagingService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/default_notification_channel_id"/>
</application>
注意:Msg91FirebaseMessagingService
需要你自己实现,继承自FirebaseMessagingService
,并处理Msg91的推送消息。
- 在
android/app/build.gradle
文件中添加Msg91的SDK依赖:
dependencies {
implementation 'com.msg91.sdk:msg91-flutter:最新版本号' // 请替换为实际的最新版本号
}
iOS配置
对于iOS,你需要在Xcode中进行一些配置,但通常msg91的Flutter插件会处理大部分工作。确保你已经配置好了Firebase Cloud Messaging(FCM),因为Msg91通常是通过FCM来发送推送的。
Flutter代码实现
- 初始化Msg91插件并发送本地通知:
import 'package:flutter/material.dart';
import 'package:msg91_flutter/msg91_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Msg91 Flutter Example'),
),
body: Center(
child: ElevatedButton(
onPressed: _sendLocalNotification,
child: Text('Send Notification'),
),
),
),
);
}
void _sendLocalNotification() async {
// 初始化Msg91插件
await Msg91Flutter.init(
apiKey: '你的Msg91 API Key', // 替换为你的Msg91 API Key
senderId: '你的Sender ID', // 替换为你的Sender ID(通常与FCM相关)
);
// 发送本地通知
Msg91Flutter.showNotification(
title: 'Hello',
body: 'This is a test notification from Msg91!',
payload: '{"key":"value"}', // 可选的自定义数据
);
}
}
注意:上述代码示例主要用于展示如何集成Msg91插件并发送本地通知。对于实际的推送功能,你需要配置Msg91的后台服务,并通过Msg91的API发送推送消息。本地通知只是用于测试插件是否集成成功。
此外,对于生产环境,确保你处理了所有必要的错误处理和用户权限请求(如通知权限)。
请根据你的实际需求调整上述代码,并参考Msg91的官方文档获取更多详细信息。