IM 即时通讯
Flutter
动态与公告
IM UIKit 更新日志
NIM SDK 更新日志
产品介绍
简介
主要功能
产品优势
接口及业务限制
海外数据中心
功能介绍
帐号集成与登录
基础消息功能
群组功能
聊天室功能
聊天室标签功能
圈组功能
多端登录与互踢策略
质量数据监控台
快速开始
跑通 IM Demo 源码
实现单聊消息收发(不含 UI)
实现圈组消息收发(不含 UI)
含 UI 集成
什么是 IM UIKit
IM UIKit 功能列表
快速集成 IM UIKit
组件导入
初始化
界面跳转
全局配置
语言设置
会话列表相关
集成会话列表界面
事件监听
自定义会话列表界面 UI
会话消息相关
集成会话界面
事件监听
发送自定义消息
实现地理位置消息功能
自定义会话界面 UI
通讯录相关
集成通讯录界面
事件监听
自定义通讯录界面 UI
UIKit 功能实现方案
消息回复实现方案
IM UIKit 常见问题排查
不含 UI 集成
集成 SDK
初始化
登录相关
登录 IM
多端登录与互踢
登出 IM
消息相关
消息概述
消息收发
NOS 存储场景
消息配置选项
语音消息处理
广播消息收发
消息已读回执
消息撤回
消息重发与转发
消息更新
插入本地消息
最近会话
用户资料
用户关系
在线状态订阅
历史消息
系统通知
群组功能
群组概述
群组管理
群成员管理
群消息管理
超大群
反垃圾(内容审核)
开通聊天室功能
聊天室
圈组功能
已知问题
圈组概述
圈组登录管理
服务器相关
服务器概述
服务器管理
服务器成员管理
游客功能
服务器未读数管理
频道相关
频道概述
频道管理
频道黑白名单
频道未读数管理
搜索服务器与频道
身份组相关
身份组概述
身份组应用场景
服务器身份组
频道身份组
用户定制权限
身份组相关查询
成员权限查询与判定
圈组消息相关
图解圈组消息流转
圈组消息收发
圈组消息撤回
圈组消息更新
圈组消息删除
消息正在输入
会话消息回复(Thread)
圈组快捷评论
获取频道最后一条消息
查询历史消息
查询@我的消息
圈组消息缓存
圈组消息搜索
圈组订阅机制
圈组离线推送
圈组系统通知相关
圈组系统通知概述
圈组系统通知收发
圈组系统通知更新
圈组内容审核
圈组相关抄送
圈组第三方回调
Android 平台离线推送
实现 Android 平台离线推送
配置消息的推送属性
设置群消息强制推送
设置推送全局免打扰
设置多端推送策略
设置离线推送点击事件自定义跳转
Android 平台消息提醒
实现消息提醒
配置消息提醒功能
设置群消息强制提醒
设置消息提醒点击跳转
定制通知栏显示信息
iOS 平台 APNs 离线推送
实现 APNs 离线推送
配置消息的推送属性
设置推送全局免打扰
设置多端推送策略
聊天扩展
其他
服务端会话服务
最佳实践
IM 登录最佳实践
实现九宫格群头像
API 参考
Flutter API 参考
状态码/错误码
IM 控制台指南
创建应用
升级服务
注册 IM 账号
服务协议
常见问题
第三方推送厂商的限制说明

集成 SDK

更新时间: 2023/05/04 14:46:15

网易云信 IM 即时通讯服务基于网易多年的通信服务技术积累,致力于打造最稳定的即时通讯平台。NetEase Instant Messaging Flutter SDK(以下简称为 NIM Flutter SDK)为 Flutter 应用提供完善的即时通信功能开发框架,屏蔽其内部复杂细节,对外提供较为简洁的 API,方便您的应用快速集成即时通信功能。

NIM Flutter SDK 目前支持 Android 和 iOS。非移动端(包括 Windows、macOS 和 Web)仍为 Beta 版本,处于内测阶段,敬请期待。

前提条件

开发环境

请确保您的开发环境,满足如下要求:

  • Flutter-dart 2.17.0 及以上版本。

  • 各端开发环境要求:

    Android
    • Android Studio 3.5 及以上版本。
    • App 要求 Android 4.4 API 19 及以上版本设备。
    • 1.5.21以上版本的 kotlin-gradle-plugin
    iOS
    • Xcode 11.0 及以上版本。
    • App 要求 iOS 11.0 以上版本设备。
    • 项目已设置有效的开发者签名。

    Windows、macOS 和 Web 目前仍为 Beta 版本,处于内测阶段,敬请期待。

集成SDK

NIM Flutter SDK 已经发布到 pub 库,您可以通过配置 pubspec.yaml 自动下载更新。

  1. 在项目的 pubspec.yaml 文件中添加以下依赖。

    dependencies: 
    nim_core: ^1.1.0 
    
  2. 通过 Shell 或者 IDE 执行以下命令,下载依赖包。

    flutter pub get
    

编译与防混淆配置(仅 Android)

集成 SDK 之后,Android 端还需要额外添加以下配置。

编译配置

  1. 使用kotlin-gradle-plugin,在工程根目录的 build.gradle 文件中添加以下配置。

    //file: build.gradle
    
    buildscript {
        ext.kotlin_version = '1.5.21'
        repositories {
            google()
            mavenCentral()
        }
    
        dependencies {
            classpath 'com.android.tools.build:gradle:4.1.3'
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
  2. app/build.gradle 中配置 packagingOptions,示例如下:

        //file: app/build.gradle
    
        // 新增:启用 kotlin 插件
        apply plugin: 'kotlin-android'
    
        android {
            // 其他配置
            ...
    
            packagingOptions {
                pickFirst 'lib/x86/libc++_shared.so'
                pickFirst 'lib/x86_64/libc++_shared.so'
                pickFirst 'lib/armeabi-v7a/libc++_shared.so'
                pickFirst 'lib/arm64-v8a/libc++_shared.so'
            }
        }
    

防混淆配置

代码混淆是指使用简短无意义的名称重命名已存在的类、方法、属性等,增加逆向工程的难度,保障 Android 程序源码的安全性。

为了避免因上述的重命名而导致调用 NIM SDK 异常,请在 proguard-rules.pro 文件中加入以下代码,将 NIM Flutter SDK 相关类加入不混淆名单。

-dontwarn com.netease.**
-keep class com.netease.** {*;}
-dontwarn org.apache.lucene.**
-keep class org.apache.lucene.** {*;}
-keep class net.sqlcipher.** {*;}
此文档是否对你有帮助?
有帮助
我要吐槽
  • 前提条件
  • 开发环境
  • 集成SDK
  • 编译与防混淆配置(仅 Android)
  • 编译配置
  • 防混淆配置