| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 使用-Flutter-快速实现聊天应用,带你快速通过字节跳动面试 -> 正文阅读 |
|
[移动开发]使用-Flutter-快速实现聊天应用,带你快速通过字节跳动面试 |
}
SDK 安装成功以后,需要分别?初始化 iOS 和 Android 平台。 用户系统Demo 里面并没有内置用户系统,可以选择联系人列表中的用户名来登录聊天系统。LeanCloud 即时通信服务端中只需要传入一个唯一标识字符串既可以表示一个「用户」,对应唯一的 Client, 在应用内唯一标识自己的 ID(clientId)。 在自己的项目中,如果已经有独立的用户系统也很方便维护。 会话列表会话列表要展示当前用户所参与的会话,会话名称、会话的成员,会话的最后一条消息。还需要展示未读消息数目。 会话列表对应 Conversation 表,查询当前用户的全部会话只需要下面两行代码: ConversationQuery query = client.conversationQuery(); 按照会话的更新时间排序: query.orderByDescending(‘updatedAt’); 为了展示会话的最新一条消息,查询的时候要额外加上这行代码: //让查询结果附带一条最新消息 这样会话页面的后端数据就搞定了。下面看一下如何显示数据。 会话查询成功返回的数据格式是 Conversation 类型的 List。
未读消息数的处理如果要在 Android 设备上运行,需要在初始化 Java SDK 的时候加上下面这行代码,表示开启未读消息数通知: AVIMOptions.getGlobalOptions().setUnreadNotificationEnabled(true); swift SDK 是默认支持,无需额外设置。 可以监听 onUnreadMessageCountUpdated 时间获取未读消息数通知: client.onUnreadMessageCountUpdated = ({ 注意要在以下两处清除未读消息数:
会话详情页面上拉加载更多历史消息查询聊天记录的时候,先查最近的 10 条消息,然后以第一页的最早的消息作为开始,继续向前拉取消息: List messages; try { 修改会话名对话的名称是会话表 Conversation 默认的属性,更新会话名称只需要执行: await conversation.updateInfo(attributes: { 图片、语音消息LeanCloud 即时通信 SDK 提供了下面几种默认的消息类型,Demo 中只用到了文本消息,图像消息和语音消息。
注意,图片与语音消息需要先保存成 LCFile,然后再调用发消息接口发消息。 比如发送音频消息。第一步先保存音频文件为 LCFile: LCFile file = await LCFile.fromPath(‘message.wav’, path); 第二步,再发消息: //发送消息 还要注意 iOS 设备发送图片消息注意打开相册和相机权限,语音消息需要麦克风权限: NSMicrophoneUsageDescription NSCameraUsageDescription NSPhotoLibraryUsageDescription 离线推送通知当用户下线以后,收到消息的时候,往往希望能有推送提醒。最简单的一种推送设置就是在 LeanCloud?控制台 > 消息 > 即时通讯 > 设置 > 离线推送设置?页面,填入: {?“alert”:?“您有新的消息”,?“badge”:?“Increment”?} 这样 iOS 设备有离线消息的时候会收到提醒。这里 badge 参数为 iOS 设备专用,用于增加应用 badge 上的数字计数。
当然在实际项目中,离线消息的提醒往往会要求更加具体,比如推送中要包括消息的内容或者消息类型等。LeanCloud 也提供了其他几种定制离线推送的方法,感兴趣可以自行查阅文档。 还要注意,iOS 推送一定要正确配置?配置 APNs 推送证书,并打开 Xcode 的推送开关: AppDelegate.swift 中开启推送,要这样设置: import Flutter @UIApplicationMain override func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { 投诉举报、黑名单在 APP Store 审核过程中,因为用户可以随意发送消息,被要求对用户生成的内容要有适当的预防措施。 要求提供下面这两条内容:
用户标记不良信息的机制,就是举报功能。
用户阻止滥用用户的机制,实际就是黑名单。 实现举报功能我的解决办法是在消息处长按弹出举报窗口。 ![8](https://upload-images.jianshu.io/upload_images/23587538-
2ff25258805b7b28.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240 “8”) 使用 LeanCloud 存储服务,新建一张 Report 表用于记录举报信息: //保存一条举报信息 可以在控制台查看举报内容: 实现黑名单功能tID; //举报人 可以在控制台查看举报内容: [外链图片转存中…(img-T7rzy0a2-1639563060260)] 实现黑名单功能 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:56:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |