敬告:此 DEMO 演示为开放测试页面,仅用于开发者快速测试体验应用功能,请严格遵守开发者协议,了解更多。
♦ JS-SDK 引用方式:
♦ 普通网页 script 方式加载:下载最新版 jsBridge-v20241115.zip,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库;
♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package
♦ 去申请 接入应用;
♦ js API 接入步骤:
♦ 1. 执行 jsBridge.rc.init 初始化融云系统;
♦ 2. 执行 jsBridge.rc.setUserInfoListener 设置用户资料监听器;
♦ 3. 执行 jsBridge.rc.connect 连接服务器;
♦ 4. 调用业务接口;
基础
• 调用融云其他 API 接口之前需先执行初始化,只需执行一次。
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_init
jsBridge.rc.init({ //在融云上创建应用获得的 App Key //注意:开发环境 与 生产环境 的 App Key 是不同的 appKey : "8luwapkv8bqil", //是否启用离线推送功能 //需配置推送功能:融云后台 - IM 服务 - 应用标识 - 设置推送 enablePush: true }, function(succ) { alert(succ ? "成功" : "失败"); });
jsBridge.rc.setUserInfo({ //用户ID userId : "yimenapp2", //昵称 userName : "userId 的昵称", //头像 userAvatar: "http://pics.sc.chinaz.com/Files/pic/icons128/5104/3.png" }); alert("已设置");
• 当 APP 要显示用户信息(昵称,头像)的时候会调用此监听器,参数 userId 指示要显示哪个用户的信息;
• 请在回调函数内调用 jsBridge.rc.setUserInfo 设置用户信息;
jsBridge.rc.setUserInfoListener(function(userId) { //userId 用户Id console.log(userId); //从服务器获取用户信息,调用 setUserInfo 设置昵称和头像 jsBridge.rc.setUserInfo({ userId : userId, userName : "userId 的昵称", userAvatar: "http://pics.sc.chinaz.com/Files/pic/icons128/5104/3.png" //userId 的头像 }); }); alert("已设置");
• 成功连接到融云服务器后才能正常调用其他业务接口。
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_connect
• 服务器端接口 https://www.rongcloud.cn/docs/server.html#user_get_token
//用执行服务器端接口 User.register(user) 拿到的 token 连接服务器 // https://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register jsBridge.rc.connect({ //yimenapp //调用融云服务器端接口获取到的用户 token //参考 https://www.rongcloud.cn/docs/server.html#user_get_token token : "dLOiJyJ0kc5ABa68y0cHJTF0GMKRswiHFWMCwqh7SVAltzgqDNpv9OZ0fkoXqaFF4jPVy7sE8TMyVlnBmTl3MA==", //用户昵称 userName : "闲张三", //用户头像 userAvatar: "http://pics.sc.chinaz.com/Files/pic/icons128/5104/3.png", //可选,字符串类型,视频解析度与帧率,默认 VD_480x640_15f //仅用于视频会话 callVideoProfile: "VD_480x640_15f" }, function(succ, message) { alert(succ ? "成功" : "失败:\n" + message); }); /** callVideoProfile 属性支持以下字符串: 字符串 支持平台 VD_144x176_15f Android & iOS VD_144x176_24f Android VD_144x176_30f Android VD_144x256_15f Android VD_144x256_24f Android VD_144x256_30f Android VD_240x240_15f Android VD_240x240_24f Android VD_240x240_30f Android VD_240x320_15f Android & iOS VD_240x320_24f Android VD_240x320_30f Android VD_360x480_15f Android & iOS VD_360x480_24f Android VD_360x480_30f Android VD_360x640_15f Android & iOS VD_360x640_24f Android VD_360x640_30f Android VD_368x640_15f Android VD_368x640_24f Android VD_368x640_30f Android VD_480x640_15f Android & iOS (默认) VD_480x640_24f Android VD_480x640_30f Android VD_480x720_15f Android & iOS VD_480x720_24f Android VD_480x720_30f Android VD_480x854_15f Android VD_480x854_24f Android VD_480x854_30f Android VD_720x1280_15f Android & iOS VD_720x1280_24f Android VD_720x1280_30f Android VD_1080x1920_15f Android VD_1080x1920_24f Android VD_1080x1920_30f Android **/
• 成功连接到融云服务器后才能正常调用其他业务接口。
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_connect
//用执行服务器端接口 User.register(user) 拿到的 token 连接服务器 // https://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register jsBridge.rc.connect({ //yimenapp2 token: "W32PGRIGhAhmh26VMKrXq42Wpo2+AX21vVOA1b6ApXlc5/BkuadzUMEtOTpSNVXz2LBdfVOKzahPHvB7RVTxzKZd9ZqgLua5", //用户昵称 userName : "忙李四", //用户头像 userAvatar: "http://pics.sc.chinaz.com/Files/pic/icons128/5105/0.png" }, function(succ, message) { alert(succ ? "成功" : "失败:\n" + message); });
• 成功连接到融云服务器后才能正常调用其他业务接口。
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_connect
//用执行服务器端接口 User.register(user) 拿到的 token 连接服务器 // https://www.rongcloud.cn/docs/server_sdk_api/user/user.html#register jsBridge.rc.connect({ //yimen_user3 token: "XHMN0tTzZkgjSwBR2Rxgro2Wpo2+AX21vVOA1b6ApXlc5/BkuadzULefDnkh25P0IvNFgwKkf89Za+nUfdtouaolVx8L+Gtp", //用户昵称 userName : "枯叶碟", //用户头像 userAvatar: "http://pics.sc.chinaz.com/Files/pic/icons128/7422/m13.png" }, function(succ, message) { alert(succ ? "成功" : "失败:\n" + message); });
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_disconnect
jsBridge.rc.disconnect(function(succ) { alert(succ ? "成功" : "失败"); });
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_disconnect
jsBridge.rc.logout(function(succ) { alert(succ ? "成功" : "失败"); });
IM 即时通讯
• 开启会话
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_conversation_list_config
//开启会话 jsBridge.rcIM.startConversation({ //必须,数字类型,会话类型 conversationType: 1, //必须,字符串类型,会话对象,根据不同的 conversationType,可能是用户Id、群组Id 或 聊天室Id targetId: "yimenapp", //可选,字符串类型,会话标题 title : "聊起来1~~" }, function(succ) { if (!succ) alert("失败"); }); /** 会话类型说明(conversationType): 1 : private 2 : discussion 3 : group 4 : chatroom 5 : customer_service 6 : system 7 : app_public_service 8 : public_service 9 : push_service 11: encrypted 12: rtc_room **/
• 开启会话
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_conversation_list_config
//开启会话 jsBridge.rcIM.startConversation({ //必须,数字类型,会话类型 conversationType: 1, //必须,字符串类型,会话对象,根据不同的 conversationType,可能是用户Id、群组Id 或 聊天室Id targetId: "yimenapp2", //可选,字符串类型,会话标题 title : "聊起来2~~" }, function(succ) { if (!succ) alert("失败"); });
• 打开全部类型的会话列表
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_conversation_list_config
//打开全部类型的会话列表 jsBridge.rcIM.startConversationList({ //可选,数字数组,指定需要展开显示的会话类型(会话列表默认为分组聚合(折叠)显示,这里指定不折叠(展开)显示的会话类型,参见 startConversation 方法 flat: [2, 3, 5] }, function(succ) { if (!succ) alert("失败"); });
• 打开某种类型会话列表
• 参考官方说明 https://www.rongcloud.cn/docs/android.html#integration_conversation_list_config
//打开单个类型的会话列表 jsBridge.rcIM.startSubConversationList({ //必须,数字类型,打开单个类型的会话列表,会话类型 startConversation 方法 conversationType: 1 }, function(succ) { if (!succ) alert("失败"); });
• 获取未读消息数量
jsBridge.rcIM.unreadMessageCount(function(count) { alert(count + " 条未读"); });
音视频通话
• 发起单人通话
• 参考官方说明 https://www.rongcloud.cn/docs/ios_callkit.html#start_call
jsBridge.rcCall.startSingleCall({ //通话对方用户 id targetId: "yimenapp", //true - 视频通话,false - 音频通话 video : true }, function(succ) { if (!succ) alert("失败"); });
• 发起单人通话
• 参考官方说明 https://www.rongcloud.cn/docs/ios_callkit.html#start_call
jsBridge.rcCall.startSingleCall({ //通话对方用户 id targetId: "yimenapp2", //true - 视频通话,false - 音频通话 video : true }, function(succ) { if (!succ) alert("失败"); });
• 发起多人通话
• 参考官方说明 https://www.rongcloud.cn/docs/ios_callkit.html#start_call
jsBridge.rcCall.startMultiCall({ //通话对方用户 id targetId: "yimenapp2", //true - 视频通话,false - 音频通话 video : true, //会话类型 conversationType: 1, //参与者用户 id 列表 userIds : ["yimenapp2", "yimen_user3"] }, function(succ) { if (!succ) alert("失败"); }); /** 会话类型(conversationType): 1 : private 私聊 2 : discussion 讨论组 3 : group 群组 4 : chatroom 聊天室 5 : customer_service 6 : system 7 : app_public_service 8 : public_service 9 : push_service 11: encrypted 12: rtc_room **/