Flutter聊天集成插件flutter_termii的使用
Flutter聊天集成插件flutter_termii的使用
一个帮助开发者在Flutter应用中使用消息通道来验证和认证客户交易的插件。
Android | iOS | Linux | macOS | Web | Windows | |
---|---|---|---|---|---|---|
支持 | 任何版本 | 任何版本 | 任何版本 | 任何版本 | 任何版本 | 任何版本 |
特性
使用此插件在你的Flutter应用中可以:
- 发送消息
- 发送批量消息
- 发送验证码
- 发送语音验证码
- 进行语音通话
- 生成应用内验证码
- 验证验证码
- 查看余额
开始使用
为了使用Termii的APIs,你需要首先在www.termii.com上免费创建一个账户。
基础URL
你的Termii账户有一个自己的基础URL,你应该在所有API请求中使用它。下面展示的基础URL是一个示例。你可以在你的仪表盘上找到你的基础URL。
获取API密钥
你可以从你的仪表盘设置中获取API密钥。
使用方法
要使用此插件,将flutter_termii
作为依赖项添加到你的pubspec.yaml
文件中:
dependencies:
flutter:
sdk: flutter
flutter_termii:
以下是一个简单的示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_termii/flutter_termii.dart';
final termii = Termii(
url: 'https://api.ng.termii.com',
apiKey: 'YOUR API KEY',
senderId: 'CompanyName',
);
final responseData = await termii.sendSms(
destination: "2349012672787",
message: "This is a test message",
);
print(responseData);
完整示例代码
以下是在Flutter应用中使用flutter_termii
插件的完整示例代码:
import 'package:flutter/material.dart';
import 'package:flutter_termii/flutter_termii.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return const MaterialApp(
title: 'Flutter Termii',
debugShowCheckedModeBanner: false,
home: HomePage(),
);
}
}
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
[@override](/user/override)
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final _formKey = GlobalKey<FormState>();
final _phonenumberController = TextEditingController();
// 使用有效的基础URL和API密钥进行身份验证
final termii = Termii(
url: 'https://api.ng.termii.com',
apiKey: 'YOUR API KEY',
senderId: 'CompanyName',
);
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: Form(
key: _formKey,
child: Padding(
padding: const EdgeInsets.all(10.0),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
TextFormField(
controller: _phonenumberController,
decoration: const InputDecoration(
contentPadding: EdgeInsets.symmetric(
vertical: 8.0,
horizontal: 12.0,
),
border: OutlineInputBorder(),
),
),
const SizedBox(
height: 20,
),
SizedBox(
width: double.infinity,
height: 60,
child: TextButton(
onPressed: _submit,
style: TextButton.styleFrom(
backgroundColor: Colors.blue,
primary: Colors.white,
),
child: const Text('提交'),
),
),
],
),
),
),
),
);
}
_submit() async {
// destination/手机号码必须以国际格式(例如:23490126727)。
final responseData = await termii.sendSms(
destination: _phonenumberController.text,
message: "This is working",
);
final bulkResponseData = await termii.sendBulkSms(
multipleDestinations: ["23490555546", "23423490126999", "23490555546"],
message: "This is working for multiple numbers",
// channel 是消息发送的途径。它可以是dnd、whatsapp或generic(默认)
channel: "whatsapp",
);
final tokenResponseData = await termii.sendToken(
destination: _phonenumberController.text,
pinAttempts: 2, // 2次
// pinExpiryTime 表示PIN码的有效期,单位为分钟。最小值为0,最大值为60
pinExpiryTime: 2, // 2分钟
pinLength: 6,
// 在发送消息之前,PIN码占位符将被生成的PIN码替换。
pinPlaceholder: "< 1234 >",
messageText: "Your pin is < 1234 >",
messageType: MessageType.numeric,
pinType: MessageType.numeric,
);
final inAppTokenResponseData = await termii.generateInAppToken(
destination: _phonenumberController.text, // 示例:2349012672789
pinAttempts: 6, // 6次
pinExpiryTime: 5, // 5分钟
pinLength: 3,
pinType: MessageType.numeric,
);
final verifyTokenResponseData = await termii.verifyToken(
pinId: "c8dcd048-5e7f-4347-8c89-4470c3af0b",
pin: "195558",
);
final searchResponseData = await termii.searchPhoneNumber(
phoneNumber: _phonenumberController.text,
);
print(responseData);
}
}
更多关于Flutter聊天集成插件flutter_termii的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter聊天集成插件flutter_termii的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中集成并使用flutter_termii
插件来创建聊天功能的示例代码。flutter_termii
是一个用于Flutter的聊天UI库,可以方便地集成到应用中。
1. 添加依赖
首先,在你的pubspec.yaml
文件中添加flutter_termii
依赖:
dependencies:
flutter:
sdk: flutter
flutter_termii: ^latest_version # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 导入包
在你的主Dart文件中(通常是main.dart
),导入flutter_termii
包:
import 'package:flutter/material.dart';
import 'package:flutter_termii/flutter_termii.dart';
3. 配置和初始化Termii
在main.dart
中配置和初始化Termii聊天界面。这里假设你已经有一个后端服务来提供聊天数据。
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Termii Chat',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: ChatScreen(),
);
}
}
class ChatScreen extends StatefulWidget {
@override
_ChatScreenState createState() => _ChatScreenState();
}
class _ChatScreenState extends State<ChatScreen> {
TermiiController termiiController;
@override
void initState() {
super.initState();
termiiController = TermiiController(
// 替换为你的后端API端点
baseUrl: 'https://your-backend-api.com/api',
userId: 'user_123', // 当前用户的ID
socketUrl: 'wss://your-websocket-url', // WebSocket URL
onConnected: () {
print('Connected to the chat server');
},
onMessageReceived: (message) {
print('New message received: ${message.body}');
},
onTyping: (typingUser) {
print('User ${typingUser.userId} is typing...');
},
onError: (error) {
print('Error: $error');
},
);
}
@override
void dispose() {
termiiController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Chat'),
),
body: TermiiWidget(
controller: termiiController,
inputFieldPlaceholder: 'Type a message...',
sendButtonIcon: Icons.send,
onSendPressed: (message) async {
// 发送消息前可以添加自定义逻辑
await termiiController.sendMessage(message);
},
),
);
}
}
4. 运行应用
确保你的后端服务正在运行,并且API端点和WebSocket URL是可访问的。然后运行你的Flutter应用:
flutter run
注意事项
- 后端服务:
flutter_termii
依赖于后端服务来获取和发送聊天消息。你需要确保后端服务能够处理这些请求,并且返回正确的数据格式。 - 身份验证:在实际应用中,你可能需要添加身份验证逻辑,以确保用户只能访问他们有权访问的聊天数据。
- 错误处理:在实际应用中,你应该添加更多的错误处理逻辑,以提高应用的健壮性。
这个示例代码展示了如何在Flutter应用中集成flutter_termii
插件来创建一个简单的聊天界面。根据你的具体需求,你可能需要进一步自定义和扩展这个示例。