精华内容
下载资源
问答
  • 融云sdk
    2021-03-16 15:41:29

    背景

    在集成融云 SDK 后,需要实现群组操作的消息通知。包括:

    • 群创建、销毁通知
    • 群公告通知
    • 群人员加入、退出通知
    • 群昵称修改通知

    融云现有的 SDK 仅提供了 RCGroupNotificationMessage,内部封装了几种简单的类型操作,且扩展性不强,无法完成现有的操作。

    解决方案:

    使用自定义消息重新来构建群组通知消息。

    参考 sealtlak 中的 RCDGroupNotificationMessage,也是单独对群组操作内容,重新进行了封装处理。

    /*!
     群组通知消息
     */
    @interface RCDGroupNotificationMessage : RCMessageContent
    
    //操作名
    @property (nonatomic, copy) NSString *operation;
    
    //操作人
    @property (nonatomic, copy) NSString *operatorUserId;
    
    //操作对象
    @property (nonatomic, strong) NSArray<NSString *> *targetUserIds;
    
    //内容
    @property (nonatomic, copy) NSString *message;
    
    //获取摘要
    - (NSString *)getDigest:(NSString *)groupId;
    @end
    

    这个类预定义了下面几种操作类型消息,具体内容可参考名字定义

    extern NSString *const RCDGroupCreate;
    extern NSString *const RCDGroupMemberAdd;
    extern NSString *const RCDGroupMemberQuit;
    extern NSString *const RCDGroupMemberKicked;
    extern NSString *const RCDGroupRename;
    extern NSString *const RCDGroupBulletin;
    extern NSString *const RCDGroupOwnerTransfer;
    extern NSString *const RCDGroupDismiss;
    extern NSString *const RCDGroupMemberJoin;
    extern NSString *const RCDGroupMemberManagerSet;
    extern NSString *const RCDGroupMemberManagerRemove;
    extern NSString *const RCDGroupMemberProtectionOpen;
    extern NSString *const RCDGroupMemberProtectionClose;
    

    .m 的实现还是按照自定义消息的实现进行处理。唯一有区别的是在获取摘要的方法,在这个方法中对消息内容进行了处理,根据操作名的不同,来对显示的内容进行各种适配。此处根据根据自己的业务进行修改。

    - (NSString *)getDigest:(NSString *)groupId {
    
        NSString *content;
    
        //获取用户信息
        NSString *operationName = [self getDisplayNames:@[ self.operatorUserId?self.operatorUserId:@""] groupId:groupId];
        NSString *targetNames = [self getDisplayNames:self.targetUserIds groupId:groupId];
    
        //是否当前用户操作
        BOOL isMeOperate = NO;
        if ([self.operatorUserId isEqualToString:[RCIMClient sharedRCIMClient].currentUserInfo.userId]) {
            isMeOperate = YES;
        }
    
        //判断操作类型
        if ([self.operation isEqualToString:RCDGroupCreate]) {
            content =
                [NSString stringWithFormat:NSLocalizedStringFromTable(isMeOperate ? @"GroupHaveCreated" : @"GroupCreated",
                                                                      @"RongCloudKit", nil),
                                           operationName];
        } else if ([self.operation isEqualToString:RCDGroupMemberAdd]) {
            if (self.targetUserIds.count == 1 && [self.targetUserIds containsObject:self.operatorUserId]) {
                content = [NSString
                    stringWithFormat:NSLocalizedStringFromTable(@"GroupJoin", @"RongCloudKit", nil), operationName];
            } else {
                content = [NSString
                    stringWithFormat:NSLocalizedStringFromTable(isMeOperate ? @"GroupHaveInvited" : @"GroupInvited",
                                                                @"RongCloudKit", nil),
                                     operationName, targetNames];
            }
        } else if ([self.operation isEqualToString:RCDGroupMemberJoin]) {
            content =
                [NSString stringWithFormat:NSLocalizedStringFromTable(@"GroupJoin", @"RongCloudKit", nil), operationName];
        } else if ([self.operation isEqualToString:RCDGroupMemberQuit]) {
            content = [NSString stringWithFormat:NSLocalizedStringFromTable(isMeOperate ? @"GroupHaveQuit" : @"GroupQuit",
                                                                            @"RongCloudKit", nil),
                                                 operationName];
        } else if ([self.operation isEqualToString:RCDGroupMemberKicked]) {
            content =
                [NSString stringWithFormat:NSLocalizedStringFromTable(isMeOperate ? @"GroupHaveRemoved" : @"GroupRemoved",
                                                                      @"RongCloudKit", nil),
                                           operationName, targetNames];
        } else if ([self.operation isEqualToString:RCDGroupRename]) {
            content = [NSString stringWithFormat:NSLocalizedStringFromTable(@"GroupChanged", @"RongCloudKit", nil),
                                                 operationName, self.targetGroupName];
        } else if ([self.operation isEqualToString:RCDGroupDismiss]) {
            content =
                [NSString stringWithFormat:NSLocalizedStringFromTable(isMeOperate ? @"GroupHaveDismiss" : @"GroupDismiss",
                                                                      @"RongCloudKit", nil),
                                           operationName];
        } else if ([self.operation isEqualToString:RCDGroupOwnerTransfer]) {
            content = [NSString stringWithFormat:RCDLocalizedString(@"GroupHasNewOwner"), targetNames];
        } else if ([self.operation isEqualToString:RCDGroupMemberManagerSet]) {
            content = [NSString stringWithFormat:RCDLocalizedString(@"GroupSetManagerMessage"), targetNames];
        } else if ([self.operation isEqualToString:RCDGroupMemberProtectionOpen]) {
            content = RCDLocalizedString(@"openMemberProtection");
        } else if ([self.operation isEqualToString:RCDGroupMemberProtectionClose]) {
            content = [NSString stringWithFormat:RCDLocalizedString(@"closeMemberProtection"), operationName];
        } else {
            content = NSLocalizedStringFromTable(@"unknown_message_cell_tip", @"RongCloudKit", nil);
        }
        return content;
    }
    

    此外,还有一个获取名称的方法,用来维护用户信息。

    - (NSString *)getDisplayNames:(NSArray<NSString *> *)userIds groupId:(NSString *)groupId 
    
    更多相关内容
  • 使用融云SDK集成

    2021-06-06 16:41:13
    使用融云开始还是遇到了很多的坑的,特别是看不太...1 下载SDK融云SDK下载页面截图有IMKit SDK和IMLib SDK可以下载。其中IMKit是带一些组件的,像会话页面等可以直接使用。如果想重新定制界面便选择IMLib SDK即可...

    使用融云开始还是遇到了很多的坑的,特别是看不太明白官方文档。或许自己不够有耐心。

    期间还遇到了许多bug,比如,明明配置的没问题了,可我的手机还是连不上融云。

    后来还是在融云的知识库中找到了解决办法,总之是一波三折。

    1 下载SDK

    50be10fe916e

    融云SDK下载页面截图

    有IMKit SDK和IMLib SDK可以下载。其中IMKit是带一些组件的,像会话页面等可以直接使用。如果想重新定制界面便选择IMLib SDK即可。

    为了方便快速使用,最后我还是选择了下载IMKit

    在下载下来的压缩包解压后如下

    50be10fe916e

    解压后的文件目录

    2 在Android Studio中导入

    最开始的时候,我按照一些教程,直接在Android Studio里面Import Module,之后出现了一些问题,首先是IMkit里面的build.gradle依赖了compile project (':IMLib'),其次我没有找到写RONG_CLOUD_APP_KEY的地方。

    解决方法

    方法一

    可以将IMLib文件夹下libs中的Rong_IMLib.jar添加到你项目中的libs中

    然后将IMLib文件夹下的AndroidManifest.xml中的内容全部写入你自己项目中的AndroidManifest.xml中,我们可以看到该AndroidManifest.xml里面是有

    android:name="RONG_CLOUD_APP_KEY"

    android:value="此处添加APP_KEY" />

    50be10fe916e

    IMLib文件夹下libs

    方法二

    该方法我觉得更好些,也更容易理解,也更不容易出错。当时查看官网的知识库得知。

    50be10fe916e

    融云知识库

    所以,方法二就是按这个说法。

    首先在Android studio中Import Module IMLib

    再Impor Module IMKit

    3 基础配置

    在完成上述的导入操作后,还需进行以下操作。

    此时你的项目只是导入了IMLib和IMKit,其中IMKit已经依赖了IMLib,因为IMKit中的build.gradle已经compile project(':IMLib')对其依赖了,而你的项目并没有对IMKit进行依赖。同理,只需要你在自己项目中的build.gradle对IMKit进行依赖即可,compile project (':IMKit')。

    在IMLib中找到AndroidManifest.xml,在

    android:name="RONG_CLOUD_APP_KEY"

    android:value="你的App Key" />

    value中写入你的融云App Key即可。

    在IMKit中找到AndroidManifest.xml,在最下面有一块注释的地方

    按照此说法,写入你的项目的AndroidManifest.xml中,并打开注释,将包名改成自己的包名即可。

    按照上述操作下去,基本是不会有问题的。

    4 关键,看看能不能连上融云咯

    50be10fe916e

    融云Android SDK开发文档

    注:如果有App类则在项目的AndroidManifest.xml中的

    RongIM.init(this);即进行了初始化操作,为了方便测试,连接操作我直接也写在了App类中。

    //融云初始化

    RongIM.init(this);

    //登录成功后需要用到的

    String token="**********************************";

    RongIM.connect(token, new RongIMClient.ConnectCallback() {

    @Override

    public void onTokenIncorrect() {

    Toast.makeText(App.this, "onTokenIncorrect", Toast.LENGTH_SHORT).show();

    }

    @Override

    public void onSuccess(String s) {

    Toast.makeText(App.this, "onSuccess-用户名:"+s, Toast.LENGTH_SHORT).show();

    }

    @Override

    public void onError(RongIMClient.ErrorCode errorCode) {

    Toast.makeText(App.this, "onError", Toast.LENGTH_SHORT).show();

    }

    });

    就这样,我们编译运行后就可以根据吐司的信息看到能不能连上了。

    5 Android7.0连不上?怎么一点点吐司信息都没有!!

    这个问题折腾了我很久,因为配置这玩意当时看各种文档,走马观花的,以为是配置没配好,后来还是在融云知识库中找到为何了。

    50be10fe916e

    融云知识库

    我用了第二种方法,libsqlite.so下载地址

    解压该文件后,将里面的文件夹(所有文件,为适配各个不同架构的手机)放入你项目的libs中,

    同时,在build.gradle中的android下加

    sourceSets {

    main {

    jniLibs.srcDirs = ['libs']

    }

    }

    即可。

    注:官网SDK集成的里面还要添加libpush.so

    50be10fe916e

    融云SDK集成

    这一步应该也是需要有的,和上面加libsqlite.so是一样的

    以上便是使用融云SDK集成的所有步骤,终于写完了。。。

    展开全文
  • 一 、下载 SDK您可以到融云官方网站下载融云 SDK融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:IMKit – 融云 IM 界面组件IMLib – 融云 IM 通讯能力库...

    一 、下载 SDK

    您可以到融云官方网站下载融云 SDK。融云 SDK 各部分功能以插件化的形式独立提供,开发者可以根据自己的需要,自由组合下载。各组件的功能如下:

    IMKit – 融云 IM 界面组件

    IMLib – 融云 IM 通讯能力库

    CallKit – 融云音视频界面组件

    CallLib – 融云音视频核心组件

    LocationLib – 融云位置相关库

    PushLib – 融云第三方推送库

    RedPacket – 融云红包相关组件

    二、以 Module 形式导入各组件

    1、打开你的工程, File -> New -> Import Module

    0818b9ca8b590ca3270a3433284dd417.png

    打开你从官网下载的融云 SDK,选择 IMKit 。如图:

    0818b9ca8b590ca3270a3433284dd417.png

    根据你的需要,以同样的步骤导入SDK里的其它组件: IMLib, CallKit, CallLib, RedPacket。

    2、打开应用的 build.gradle,在 dependencies 中添加 compile project(‘:IMKit’)。如图:

    0818b9ca8b590ca3270a3433284dd417.png

    3、将 LocationLib 和 PushLib 里的 jar 包拷贝到你应用的 libs 目录下(如果不需要位置功能和小米推送,可跳过此步骤)。

    0818b9ca8b590ca3270a3433284dd417.png

    4、打开 IMLib Module 的 AndroidManifest.xml 文件,把 meta-data RONG_CLOUD_APP_KEY 的值修改为你自己的 key,并将 AndroidManifest 中所有 host 改为你依赖项目的包名(此处指 app Module 的包名)。如图:

    0818b9ca8b590ca3270a3433284dd417.png

    三、初始化 SDK

    在 application 中调用 RongIM.init(this);

    这步比较简单,在 app 的 Module 下创建 一个 App 继承 Application,注意 App 需要 在 AndroidManifest 中配置

    public class App extends Application {

    @Override

    public void onCreate() {

    super.onCreate();

    /** * 初始化融云 */

    RongIM.init(this);

    }

    }

    四、 连接融云

    在 MainActivity 中调用RongIM.connect() 连接融云。注意此处的 Token 为一个测试 Token,你需要换成你自己的 Token,这个 Token 还需要与 RONG_CLOUD_APP_KEY 匹配。

    注意,在上线前请确认在 connect 方法 ConnectCallback 中通过 onTokenIncorrect 回调方法实现重新获取 Token 的逻辑。

    package rong.io.demo;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.util.Log;

    import android.view.Menu;

    import android.view.MenuItem;

    import io.rong.imkit.RongIM;

    import io.rong.imlib.RongIMClient;

    public class MainActivity extends ActionBarActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test

    /** * IMKit SDK调用第二步 * * 建立与服务器的连接 * */

    RongIM.connect(Token, new RongIMClient.ConnectCallback() {

    @Override

    public void onTokenIncorrect() {

    //Connect Token 失效的状态处理,需要重新获取 Token

    }

    @Override

    public void onSuccess(String userId) {

    Log.e(“MainActivity”, “——onSuccess—-” + userId);

    }

    @Override

    public void onError(RongIMClient.ErrorCode errorCode) {

    Log.e(“MainActivity”, “——onError—-” + errorCode);

    }

    });

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);

    return true;

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

    return super.onOptionsItemSelected(item);

    }

    }

    五、 集成单聊界面

    由于单聊是一个 fragment,需要在 activity 加载的布局中,添加 fragment,并且在 AndroidManifest 中添加 intent-filter

    1、 添加一个 Activity,此处命名为 ConversationActivity。

    package rong.io.demo;

    import android.annotation.TargetApi;

    import android.os.Build;

    import android.os.Bundle;

    import android.support.v7.app.ActionBarActivity;

    import android.view.MenuItem;

    /** * Created by Bob on 2015/4/16. */

    public class ConversationActivity extends ActionBarActivity {

    private static final String TAG = ConversationActivity.class.getSimpleName();

    @TargetApi(Build.VERSION_CODES.LOLLIPOP)

    @Override

    public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    //唯一有用的代码,加载一个 layout

    setContentView(R.layout.conversation);

    //继承的是ActionBarActivity,直接调用 自带的 Actionbar,下面是Actionbar 的配置,如果不用可忽略…

    getSupportActionBar().setTitle(“聊天”);

    getSupportActionBar().setLogo(R.drawable.de_bar_logo);

    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    getSupportActionBar().setHomeAsUpIndicator(R.drawable.de_actionbar_back);

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

    finish();

    return super.onOptionsItemSelected(item);

    }

    }

    2、 查看布局 conversation.xml,如下:

    android:orientation=“vertical” android:layout_width=“match_parent”

    android:layout_height=“match_parent”>

    android:layout_width=“match_parent”

    android:layout_height=“match_parent”

    android:name=“io.rong.imkit.fragment.ConversationFragment”/>

    3、在 AndroidManifest 注册。注意需修改 host 为自己的包名,其他不需要修改。

    android:host=“rong.io.demo”

    android:pathPrefix=“/conversation/”

    android:scheme=“rong” />

    4、在 activity 中调用 RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”); 开启单聊,如下:

    package rong.io.demo;

    import android.support.v7.app.ActionBarActivity;

    import android.os.Bundle;

    import android.util.Log;

    import android.view.Menu;

    import android.view.MenuItem;

    import io.rong.imkit.RongIM;

    import io.rong.imlib.RongIMClient;

    public class MainActivity extends ActionBarActivity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    String Token = “d6bCQsXiupB/4OyGkh+TOrI6ZiT8q7s0UEaMPWY0lMxmHdi1v/AAJxOma4aYXyaivfPIJjNHdE+FMH9kV/Jrxg==”;//test

    /** * IMKit SDK调用第二步 * * 建立与服务器的连接 * */

    RongIM.connect(Token, new RongIMClient.ConnectCallback() {

    @Override

    public void onSuccess(String userId) {

    Log.e(“MainActivity”, “——onSuccess—-” + userId);

    }

    @Override

    public void onError(RongIMClient.ErrorCode errorCode) {

    Log.e(“MainActivity”, “——onError—-” + errorCode);

    }

    });

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.menu_main, menu);

    return true;

    }

    @Override

    public boolean onOptionsItemSelected(MenuItem item) {

    /** * 启动单聊 * context - 应用上下文。 * targetUserId - 要与之聊天的用户 Id。 * title - 聊天的标题,如果传入空值,则默认显示与之聊天的用户名称。 */

    if (RongIM.getInstance() != null) {

    RongIM.getInstance().startPrivateChat(MainActivity.this, “2462″, “hello”);

    }

    return super.onOptionsItemSelected(item);

    }

    }

    到此处 融云 SDK 单聊集成完了。

    展开全文
  • 刚接触即时通讯的项目,在使用融云SDK 来完成项目需求时,磕磕碰碰,死命看文档和提工单问融云的技术人员,真是一段痛并快乐的历程,哈哈哈!今天分享一个滑动加载获取历史消息的功能 知识点 先看获取历史消息的...

    刚接触即时通讯的项目,在使用融云的 SDK 来完成项目需求时,磕磕碰碰,死命看文档和提工单问融云的技术人员,真是一段痛并快乐的历程,哈哈哈!今天分享一个滑动加载获取历史消息的功能

    知识点

    先看获取历史消息的代码:

    var conversation = im.Conversation.get({
      targetId: '接收方的 userId',
      type: RongIMLib.CONVERSATION_TYPE.PRIVATE
    });
    var option = {
      timestrap: +new Date(),
      count: 20
    };
    conversation.getMessages(option).then(function(result){
      var list = result.list; // 历史消息列表
      var hasMore = result.hasMore; // 是否还有历史消息可以获取
      console.log('获取历史消息成功', list, hasMore);
    });
    

    参数说明:
    image

    1、因为 Web 端没有本地存储,不提供本地获取方法,只能从远端获取
    2、使用获取历史消息方法需要在开发者后台开启 IM 商用版 - 单群聊云存储 服务
    3、每次最多只能获取 20 条历史消息
    所以问题来了,获取历史消息的方法最多只能获取 20 条消息,那我想获取 20 条之前的消息,怎么办呢?
    我们需要从它的参数来入手,解决思路就是改变参数 timestrap (时间戳),在每次调用 conversation.getMessages 成功获得历史消息列表 result.list 后,将 result.list 中 sentTime 值最小的赋值给 timestrap 然后滑动继续调用 conversation.getMessages 即可获取不同时间段的历史消息,也可以通过改变参数 order 来改变是获取该时间段之前的消息还是之后的消息。

    是不是很简单,反正一开始我是迷糊了,所以记录一下,也分享给有需要的同学,不足的地方还请留言指正,大家共勉 ~ 加油!!!

    下图是 result.list 中 message 的属性说明:
    image

    展开全文
  • 配置融云SDK的自签证书 由于在Google 商店将应用下架的原因,查询具体原因是由于融云SDK 的自签证书导致的,所以联系融云才知道融云已经针对此问题进行了优化,可以升级到SDK 2.10.6 版本及以上的版本即可解决此问题...
  • 微信小程序即时通讯(融云sdk)

    千次阅读 2020-10-23 12:01:31
    记录一下我在使用融云sdk中遇到的问题 使用前要去融云那边注册账号申请appid 然后开通小程序服务,就可以下载小程序案例了 融云的sdk中的 小程序聊天中加载的资源更多的是网络资源(七牛云上的外链地址) app聊天...
  • 融云SDK集成

    2017-11-03 10:29:32
    这个融云SDK就可以直接集成好,不用像之前那么繁琐了
  • 初始化融云 SDK

    2021-04-23 14:56:46
    # init初始化融云 SDK,调用 connect 连接前务必保证调用此方法#### 调用前请在 config.xml 中设置内容如下:~~~~~~其中 value 的值请替换为您在融云开发者平台上申请的 App Key 值init(callback(ret, err))callback...
  • 融云 SDK 新用户入群加载历史消息 记录融云 SDK 的一个小功能,分享一下 背景 项目中有用到融云 SDK 中的群组功能,产品说需要新人入群的时候看到历史消息。 本来以为直接能获取到,但是实际并不可以。 后来通过和...
  • 融云全新上线的直播 SDK 2.0 中,完整封装 7 种合流布局是一大亮点。 事实上,主播和观众连麦是直播场景中非常热门的玩法之一。多人实时互动可以活跃直播氛围、激发观众参与热情,进而提升产品活跃度。因此,直播...
  • Android 融云SDK-即时通讯IM(附源码)

    千次阅读 2017-08-30 10:16:59
    前期准备: ...下载 SDK IMKit 集成了会话界面,并且提供了丰富的自定义功能,我们推荐首次接触融云的客户直接使用 IMKit 来快速集成和开发。  IMLib 提供了基础的通信能力,较轻量,适用于对 UI 有
  • 融云SDK查看ServerAPI里面有个获取Token的方法,本以为只要传三个参数就可以。后来发现,在请求头有几个必须要传的参数,否则服务器返回401(未授权)。拿获取Token接口为例子 如图所示,请求头中包含 : App-Key...
  • 一、概述最近由于工作需求研究了一下...在这里我是用了融云SDK进行嵌入开发的。 二、使用1.从官网下载融云SDKhttp://www.rongcloud.cn/downloads 下载第一个IMKit,最好包含VoIP 2.新建一个空项目找到下载的SDK
  • 融云SDK2.0快速集成

    千次下载 热门讨论 2015-04-28 15:14:12
    融云SDK2.0快速集成,一步一步带你进入融云
  • 官方文档 如果使用IMKit,对话布局可以不用自己做 先导入IMKit module,配置好之后,在module的清单文件中,搜索host,我找到2个,把*替换成 自己项目的包名,另外搜索RONG_CLOUD_APP_KEY,把值换成控制台的给的...
  • Web 端集成融云 SDK 如何发送正确图片消息给移动端展示? 前言 Web 端使用融云的即时通讯 SDK 在发送图片消息给移动端的时候,移动端一般会收到一个缩略图数据和展示高清图片地址,但是往往 Web 端发送的图片消息...
  • 融云 SDK 2.0 快速集成 Demo

    千次下载 热门讨论 2015-05-14 20:57:32
    融云 SDK 2.0 快速集成 Demo
  • 借助融云SDK搭建客服聊天系统(web端)

    千次阅读 2018-09-13 14:15:22
    客户端融云SDK集成 客服端融云SDK集成 本地服务器端API编写 融云web端API介绍 初始化SDK AppKey:融云后台创建应用的唯一标识 RongIMLib.RongIMClient.init(&amp;amp;amp;quot;appkey&...
  • 上一个博文里面说了融云头像问题,那个是没有经过测试的,我这边测试了以后确实是有bug,经过我三个小时的修改,ok已经完成了,下面给大家贴源码也把逻辑给捋一下; **这个是融云的代理方法吧大家肯定知道** - (void...
  • 最近公司需要用微信小程序做一个能够让用户沟通的功能,经过前期筛选和对比,最后还是选择了使用融云的即时通讯,下面是我用小程序首次集成融云SDK 碰到的问题,在此做个记录方便自己查看,同时也给有需要的同学...
  • 首先从官网下载融云的java版server sdk包 第一步:import module,由于这个sdk包不是Maven项目,所以我们选择Create module from existing sources。 第二步:先点击我们的项目,再点击dependencies,然后点击...
  • 最后点兵点将,选了融云家的SDK(老板说了算hhhh). 他家的官网和文档地址: 官网:https://www.rongcloud.cn/ 文档:https://docs.rongcloud.cn/v4 这个任务当然还是落在我的头上. 我是使用的他们家的带UI的sdk,(他们家...
  • 融云sdk简单实现IM单聊(android代码)
  • 融云 SDK 发布了 5.0 Dev 版本,在持续迭代新功能的同时,此版本对 IMKit SDK 进⾏了重构优化并且对外开源,SDK 初始化速度更快,同时减少了不必要的内存占⽤,针对 Android 库⽂件引⼊了加固技术,提升 App 安全...
  • 首先查看融云开发文档, 可以看到表情插件的描述, 但与产品需求不完全一致, 还需要结合其他方法实现更丰富的表情功能 主要与产品不符的地方: 1、融云提供的表情个数有限, 仅 128 个 2、融云提供的表情没有 QQ 表情...
  • 融云 SDK 支持苹果推送,当我使用的设备升级到 iOS13 及以上时,推送突然就不能用了????,经过半天的排查,终于找到了问题,原来是 deviceToken 格式变了,具体可以参考 ...
  • 1. 首先依赖下载的工程→Rong_Cloud_Android_IMKit_SDK_v2_7_0_dev,依赖工程中需要修改AndroidManifest.xml,把RONG_CLOUD_APP_KEY换成我们自己申请应用的AppKey。2.在应用程序主入口加入一下代码package ...
  • 公司集成 IM 使用的是融云的 IM SDK,我们有移动端,有 web 端,移动端同事集成表情时还是蛮顺利的貌似移动端 SDK 里就支持,一切都很顺理成章的样子,web 端就有些棘手了。web 端的表情是需要单独引入插件的,这点...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,878
精华内容 1,151
关键字:

融云sdk

友情链接: TFT-2.0英寸线路图.rar