Flutter短信发送插件oursms的使用

OurSMS - Flutter

本插件提供了简单轻量级的方法,可以用来向电话号码发送消息。

使用

你可以像这样使用它:

// 初始化客户端
final OursmsClient client = OursmsClient(key: 'YOUR_API_KEY', userId: 'YOUR_USER_ID');

// 发送单条消息(OSM)
final SentMessage sentMessage = await client.sendOneMessage(
    phoneNumber: '+8613800000000', // 电话号码
    message: '你好,这是一条测试消息。', // 消息内容
);

// 发送一次性密码(OTP)
final SentMessage sentMessage = await client.sendOtpMessage(
    phoneNumber: '+8613800000000', // 电话号码
    otpNumber: '123456', // 一次性密码
);

// 获取消息状态
final MessageStatus messageStatus = await client.getMessageStatus(messageId: 'MESSAGE_ID');

完整示例 Demo

以下是一个完整的示例,展示了如何使用 OursmsClient 来发送短信和获取消息状态:

import 'package:flutter/material.dart';
import 'package:oursms/oursms.dart'; // 导入oursms包

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('OurSMS 示例'),
        ),
        body: Center(
          child: SendSmsButton(),
        ),
      ),
    );
  }
}

class SendSmsButton extends StatefulWidget {
  [@override](/user/override)
  _SendSmsButtonState createState() => _SendSmsButtonState();
}

class _SendSmsButtonState extends State<SendSmsButton> {
  String _messageStatus = '未发送消息';

  Future<void> _sendMessage() async {
    final OursmsClient client = OursmsClient(
      key: 'YOUR_API_KEY', // 替换为你的API密钥
      userId: 'YOUR_USER_ID', // 替换为你的用户ID
    );

    try {
      // 发送单条消息
      final SentMessage sentMessage = await client.sendOneMessage(
        phoneNumber: '+8613800000000', // 电话号码
        message: '你好,这是一条测试消息。', // 消息内容
      );

      setState(() {
        _messageStatus = '消息已发送,消息ID: ${sentMessage.messageId}';
      });

      // 获取消息状态
      final MessageStatus messageStatus = await client.getMessageStatus(messageId: sentMessage.messageId);
      setState(() {
        _messageStatus = '消息状态: ${messageStatus.status}';
      });
    } catch (e) {
      setState(() {
        _messageStatus = '发送失败: $e';
      });
    }
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        ElevatedButton(
          onPressed: _sendMessage,
          child: Text('发送短信'),
        ),
        SizedBox(height: 20),
        Text(_messageStatus),
      ],
    );
  }
}

更多关于Flutter短信发送插件oursms的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter短信发送插件oursms的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


oursms 是一个用于在 Flutter 应用中发送短信的插件。它允许开发者通过简单的 API 调用来发送短信。以下是使用 oursms 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 oursms 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  oursms: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 导入插件

在你的 Dart 文件中导入 oursms 插件。

import 'package:oursms/oursms.dart';

3. 初始化插件

在使用插件之前,你需要初始化它。通常,你可以在 main.dart 文件中进行初始化。

void main() {
  runApp(MyApp());
  Oursms.initialize(apiKey: 'YOUR_API_KEY');  // 使用你的 API 密钥
}

4. 发送短信

你可以使用 Oursms.sendSms 方法来发送短信。

void sendSms() async {
  try {
    final response = await Oursms.sendSms(
      to: '+1234567890',  // 接收方号码
      message: 'Hello, this is a test message!',  // 短信内容
    );

    if (response['status'] == 'success') {
      print('SMS sent successfully!');
    } else {
      print('Failed to send SMS: ${response['message']}');
    }
  } catch (e) {
    print('Error sending SMS: $e');
  }
}

5. 处理响应

Oursms.sendSms 方法会返回一个包含发送状态的响应。你可以根据 status 字段来判断短信是否发送成功。

6. 权限配置

在 Android 上,发送短信需要 SEND_SMS 权限。你需要在 AndroidManifest.xml 文件中添加以下权限:

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

对于 iOS,你需要在 Info.plist 文件中添加以下权限描述:

<key>NSMessageUsageDescription</key>
<string>We need to send SMS messages.</string>

7. 测试

确保你已经在设备上测试了短信发送功能,并且 API 密钥是正确的。

8. 处理错误

在实际应用中,你可能会遇到各种错误,比如网络问题、权限问题等。确保你正确地处理这些错误,并向用户提供适当的反馈。

示例代码

以下是一个完整的示例代码:

import 'package:flutter/material.dart';
import 'package:oursms/oursms.dart';

void main() {
  runApp(MyApp());
  Oursms.initialize(apiKey: 'YOUR_API_KEY');
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Send SMS Example'),
        ),
        body: Center(
          child: ElevatedButton(
            onPressed: sendSms,
            child: Text('Send SMS'),
          ),
        ),
      ),
    );
  }

  void sendSms() async {
    try {
      final response = await Oursms.sendSms(
        to: '+1234567890',  // 接收方号码
        message: 'Hello, this is a test message!',  // 短信内容
      );

      if (response['status'] == 'success') {
        print('SMS sent successfully!');
      } else {
        print('Failed to send SMS: ${response['message']}');
      }
    } catch (e) {
      print('Error sending SMS: $e');
    }
  }
}
回到顶部