Flutter消息推送插件msg91的使用

发布于 1周前 作者 itying888 来自 Flutter

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

1 回复

更多关于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配置

  1. 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的推送消息。

  1. 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代码实现

  1. 初始化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的官方文档获取更多详细信息。

回到顶部