Flutter即时通讯插件piscale_chat_flutter的使用
Flutter即时通讯插件piscale_chat_flutter的使用
官方Flutter包用于Communi Chat SDK
截图
请注意:此插件仍在开发中,某些功能可能尚未可用。如需获取更多信息,请访问 PiScale Chat文档。
重要功能
- 线程列表
- 在线程中聊天;
- 文本消息;
- 多种消息类型(图片、视频、文件、表情等);
- 多种消息操作(点赞、转发、删除、分享等);
- 创建线程;
- …
开始使用
添加依赖
在您的项目的pubspec.yaml
文件中添加以下依赖,并使用最新版本:
dependencies:
piscale_chat_flutter: ^latest_version
然后运行以下命令以获取依赖项:
flutter packages get
Android
在Android版本10中,您需要请求这些权限。打开manifest文件并在应用标签中添加以下行:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.VIBRATE" />
iOS
您的项目需要使用Swift创建。在Info.plist文件中添加以下键值对:
<key>NSCameraUsageDescription</key>
<string>PiScale Chat将使用您的相机</string>
<key>NSMicrophoneUsageDescription</key>
<string>PiScale Chat将使用您的麦克风(用于视频)</string>
<key>NSPhotoLibraryAddUsageDescription</key>
<string>PiScale Chat需要访问您的照片库</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>PiScale Chat需要访问您的照片库</string>
<key>NSLocalNetworkUsageDescription</key>
<string>查找本地TCP Bonjour服务</string>
示例用法
以下是使用piscale_chat_flutter的基本示例代码:
class MessagesPageExtra {
final String? targetThreadId;
final String? targetUserId;
final int? targetMessageId;
MessagesPageExtra({
this.targetThreadId,
this.targetUserId,
this.targetMessageId,
});
}
class MessagesPage extends StatelessWidget {
final MessagesPageExtra extra;
const MessagesPage({required this.extra});
[@override](/user/override)
Widget build(BuildContext context) {
return PSScaffoldSafeArea(
child: PSMessages(
targetThreadId: extra.targetThreadId,
targetUserId: extra.targetUserId,
targetMessageId: extra.targetMessageId,
navigation: PSMessagesNavigationProvider(
onBackPress: () {}, // 返回按钮点击事件
onThreadProfilePress: (String threadId) {}, // 点击线程头像事件
onUrlPress: (String url) {}, // 点击URL事件
onEmailPress: (String email) {}, // 点击邮件地址事件
onPhoneNumberPress: (String phoneNumber) {}, // 点击电话号码事件
onForwardMessage: (String threadId, List<int> messageIds) {}, // 转发消息事件
onMessagesPinnedPress: (String threadId) {}, // 点击已钉住的消息事件
onViewFilePress: (String filePath) => OpenFilex.open(filePath), // 查看文件事件
onUserPress: (String psUserId, String? currentThreadPartnerId) {}, // 点击用户事件
onShareMessagePress: (PSMessageModel message) {}, // 分享消息事件
onChatBotActionPress: (String uri) async {}, // 点击聊天机器人事件
onMediaPress: (List<PSMessageMediaModel> media, int? startIndex) {}, // 点击媒体事件
),
),
);
}
}
更多关于Flutter即时通讯插件piscale_chat_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复