/wechat_flutter

wechat_flutter Flutter版本微信,一个优秀的Flutter即时通讯IM开源库!

Primary LanguageDartApache License 2.0Apache-2.0

GitHub stars GitHub forks GitHub issues

如果产生其他依赖无法编译的问题,可以尝试将pubspec.yaml中的dependencies中的所有依赖的"^"去掉或者插件版本号改为any,重新编译尝试。 还是出错的话在项目主目录执行flutter clean再重新运行。 如果出现插件版本不适配记得看pubspec.yaml文件介绍的插件flutter版本是否与自己本地Flutter适配。

相关文档

问题列表与解决方案

公告

目前正在以flutter2.10.4重构,具体进度查看refactor分支,将放弃dim插件,接入tencent_im_sdk_plugin,解决所有插件兼容问题,合并master后还可能会兼容空安全与代码整体规范。

log

  • 2022.06.28 更换纯ui分支模拟图片地址 【12:00】

  • 2022.06.28 创建纯ui分支【10:00】

  • 2022.05.28 更新环境信息与贴出问题列表与解决方案索引

  • 2022.05.26 开始兼容flutter2.10.4

  • 2022.05.26 列出错误列表及修复方式

  • 2022.05.15 修复补Android安装包链接和二维码

  • 2021.11.08 适配flutter 2.5

  • 2021.05.12 适配iOS,解决运行问题

  • 2021.05.10 适配 Flutter2 稳定分支 【11:45】

  • 2021.05.10 修复im插件例子不能获取依赖、修复lib/ui/flutter/my_cupertino_dialog.dart【】

  • 2021.01.16 新增支付页面,等待图标补全 【14:49】

  • 2021.01.16 适配Flutter (Channel stable, 1.22.5)

  • 2020.08.25 适配Flutter (Channel stable, 1.20.2)

  • 2020.07.29 上传头像捕获错误【15:45】

  • 2020.07.29 修复登录、退出登录、修改信息报状态管理监听错误;

  • 2020.06.30 群成员大于20才显示查看全部群成员、群主则显示群管理item【下午】

  • 2020.06.30 会话列表无会话消息判断显示、修复会话报错、群公告完整显示【上午】

  • 2020.06.26 退出群聊和解散群聊功能、聊天成员页面、选择成员页面【下午】

  • 2020.06.26 修改群聊名称页面、更换聊天背景页面、修复webView【上午】

  • 2020.06.24 群公告、更改群公告消息体内容显示、新增群备注、新增群二维码页;

  • 2020.06.23 群聊详情页面制作;

  • 2020.06.21 会话列表聊天内容显示表情【10点】

  • 2020.06.20 修复录制视频完成停止录制的时候报错【17点48分】

  • 2020.06.20 去掉初始化拍一拍效果【17点】

  • 2020.06.20 修复会话列表时而为空【12点】

  • 2020.06.20 修复群聊消息不出现在会话列表【09点】

  • 2020.06.18 新增微信拍一拍效果;

  • 2020.06.17 新增发起群聊和群聊列表展示;

  • 2020.06.16 新增表情聊天功能;

  • 2020.06.15 修复打包闪退问题;

  • 2020.02.14 适配 Flutter v1.17.3;

  • 2020.02.16 适配flutter v1.12.13和Androidx,修复Android运行问题;

  • 2019.12.30 取消extended_text_field;

介绍

wechat_flutter是flutter版微信,目前已实现即时通讯基本功能,支持安卓和IOS,具体下载体验。 start.gif

效果图

1.gif 2.gif 3.gif
4.gif 5.gif 6.gif
7.gif 8.gif 9.gif

下载体验(Android) 【测试账号166,直接登录】:https://wwc.lanzoul.com/iQlkj04vnhsj

防止上方二维码不显示:

IOS的直接拉下项目直接跑即可,

特性

  • 文字消息
  • 表情消息
  • 图片消息
  • 语音消息
  • 删除会话
  • 语言国际化
  • 账号注册
  • 账号登陆
  • 自动登陆
  • 会话列表
  • 通讯录
  • 更改头像
  • 显示头像
  • 显示昵称
  • 更改昵称
  • 搜索好友
  • 添加好友
  • 删除好友
  • 视频拍摄
  • 视频消息
  • 位置消息
  • 创建群聊
  • 退出群聊
  • 解散群聊
  • 群聊列表
  • 群聊公告
  • 修改群名
  • 群聊消息(文字)
  • 扫一扫
  • 设置备注

第三方框架

功能
dim 即时通讯
shared_preferences 持久化存储
provider 状态管理
cached_network_image 图片缓存
toast 消息提示
webview_flutter web页面显示
image_picker 图片和视频选择
extended_text 扩展文本
url_launcher 打开浏览器浏览
connectivity 检查网络连接
photo_view 图片放大显示
dio 网络框架
open_file 打开文件
package_info 包信息
flutter_sound 音频录制处理
permission_handler 权限管理
audioplayers 音频播放处理
camera 相机
video_player 视频播放
extended_text_field 扩展文本输入
flutter_image_compress 图片压缩
lpinyin 获取中文的拼音
azlistview 特殊列表滑动
wechat_assets_picker 微信图库

使用教程

IOS

  • 进入项目IOS目录:$ cd ios/
  • 更新Pod(非必须):$ pod update
  • 安装Pod:$ pod install

如果出现(Connection refused - connect(2) for "raw.githubusercontent.com" port 443),则表示还没设置国内源, 或者尝试下翻墙。

我的Flutter环境

[✓] Flutter (Channel unknown, 2.10.4, on macOS 12.2.1 21D62 darwin-x64, locale en-CN)
    • Flutter version 2.10.4 at /opt/fvm/versions/2.10.4
    • Upstream repository unknown
    • Framework revision c860cba910 (9 weeks ago), 2022-03-25 00:23:12 -0500
    • Engine revision 57d3bac3dd
    • Dart version 2.16.2
    • DevTools version 2.9.2
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0-rc1)
    • Android SDK at /Users/q1/android-sdk-macosx
    • Platform android-31, build-tools 31.0.0-rc1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7590822)

[✓] VS Code (version 1.66.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.38.1

[✓] Connected device (3 available)
    • SEA AL10 (mobile) • 6HJ4C20219007098 • android-arm64  • Android 10 (API 29)
    • macOS (desktop)   • macos            • darwin-x64     • macOS 12.2.1 21D62 darwin-x64
    • Chrome (web)      • chrome           • web-javascript • Google Chrome 102.0.5005.61

[!] HTTP Host Availability
    ✗ HTTP host https://maven.google.com/ is not reachable. Reason: An error occurred while checking the HTTP host: Operation timed out

! Doctor found issues in 1 category.

运行安卓androidx.core:core问题

错误信息:
Android dependency 'androidx.core:core' has different version for 
the compile (1.0.0) and runtime (1.0.2) classpath. You should 
manually set the same version via DependencyResolution
解决方案

项目最下方的External Libraries => Flutter Plugins => image_picker-0.6.1+2 => android => build.gradle 然后最下方有androidx.core:core:版本

直接改为androidx.core:core:1.0.0

android {
    compileSdkVersion 28

    defaultConfig {
        minSdkVersion 16
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    lintOptions {
        disable 'InvalidPackage'
    }
    dependencies {
        implementation 'androidx.core:core:1.0.0'
        implementation 'androidx.annotation:annotation:1.0.0'
    }
}

然后permission_handler也一样改下。

关于项目太久没更

最近工作太繁忙,基本没啥时间更新,然后之前是做其他开源项目,导致这个项目太久没实质性进展, 不好意思哈各位,从现在开始进入维护状态。

Future

Flutter微信群

上图无法显示点我

Flutter教程网:www.flutterj.com

Flutter交流QQ群:874592746

公众号

关注公众号“Flutter前线”,各种Flutter项目实战经验技巧,干活知识,Flutter面试题答案,等你来领取。

LICENSE

fluttercandies/wechat_flutter is licensed under the
Apache License 2.0

A permissive license whose main conditions require preservation of copyright and license notices. 
Contributors provide an express grant of patent rights. 
Licensed works, modifications, and larger works may be distributed under different terms and without source code.