什么是环信即时通讯 CallKit?
CallKit 是环信即时通讯 IM SDK 的一个开源 UI 组件,提供应用内聊天中音视频通话的页面和 UI 组件,帮助开发者快速构建应用的 UI。
什么是环信即时通讯 CallKit?
CallKit 是环信即时通讯 IM SDK 的一个开源 UI 组件,提供应用内聊天中音视频通话的页面和 UI 组件,帮助开发者快速构建应用的 UI。
什么是环信即时通讯 IMKit?
IMKit 是环信即时通讯 IM SDK 的一个开源 UI 组件,提供应用内聊天的常用页面和 UI 组件,帮助开发者快速构建应用的 UI。
什么是环信即时通讯 IM SDK?
环信即时通讯 IM SDK 是环信提供的用于实现即时通讯,比如:单聊、群聊、聊天室的 SDK。
环信IM即时通讯 什么是广播消息?
广播消息是指通过 Rest API 对应用内的所有用户发送消息。当用户离线时,消息会自动转换为系统离线推送。
环信IM即时通讯 什么是封禁用户?
禁止用户使用环信即时通讯 IM 服务, 封禁后,用户无法连接环信即时通讯 IM 服务器。
环信IM即时通讯 什么是Demo?
环信即时通讯 IM 示例开源项目,目前有 Android iOS 和 Web 平台。
环信IM即时通讯 什么是单聊?
单聊即一对一聊天,支持全类型消息。参与聊天的双方可以是好友也可以是陌生人。
客户端 SDK 不提供获取 token 的 API。如果你的用户在客户端使用环信 token 登录和鉴权,你需要在应用服务器(App Server)集成环信服务端获取 token 的 API,实现获取 Token 的业务逻辑。
环信服务端支持以下两种方式获取用户 token:
要调用环信即时通讯 RESTful API,请确保满足以下要求:
环信即时通讯 RESTful API 要求 Bearer HTTP 认证。每次发送 HTTP 请求时,都必须在请求头部填入如下 Authorization 字段:
Authorization:Bearer ${YourAppToken}
为提高项目的安全性,环信使用 token(动态密钥)对即将登录即时通讯系统的用户进行鉴权。即时通讯 RESTful API 推荐使用 app token 的鉴权方式,详见 使用 App Token 鉴权。
POST https://{host}/{org_name}/{app_name}/token
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
host | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息。 |
org_name | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息。 |
app_name | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 内容类型。请填 application/json 。 |
Accept | String | 是 | 内容类型。请填 application/json 。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
grant_type | String | 是 | 授权方式。 – 若值为 password ,通过用户 ID 和密码获取 token,需设置 username 和 password 参数。在该请求中,该参数需设置为 password 。– 若值为 inherit ,通过用户 ID 获取 token,只需设置 username 参数。 |
username | String | 是 | 用户 ID。 |
password | String | 是 | 用户的登录密码。 |
ttl | Long | 否 | token 有效期,单位为秒。设置为 0 则 token 有效期为永久。若不传该参数,有效期默认为 60 天。此外,也可通过环信即时通讯云控制台 (opens new window)的用户认证 页面设置。该参数值以最新设置为准。注意:VIP 5 集群该参数单位为毫秒。 |
如果返回的 HTTP 状态码为 200,表示成功获取 token,响应包体中包含以下字段:
字段 | 类型 | 描述 |
---|---|---|
access_token | String | 有效的用户 token。 |
expires_in | Long | token 有效期,单位为秒。在有效期内无需重复获取。 注意:VIP 5 集群该参数单位为毫秒。 |
user | JSON | 用户相关信息。 |
user.uuid | String | 用户的 UUID。即时通讯服务为该请求中的 app 或用户生成的唯一内部标识,用于生成用户 token。 |
user.type | String | 对象类型,无需关注。 |
user.created | Long | 注册用户的 Unix 时间戳,单位为毫秒。 |
user.modified | Long | 最近一次修改用户信息的 Unix 时间戳,单位为毫秒。 |
user.username | String | 用户 ID。 |
user.activated | Bool | 用户是否为活跃状态: – true :用户为活跃状态。– false :用户为封禁状态。如要使用已被封禁的用户账户,你需要调用解禁用户的 API对账号解除封禁。 |
如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考响应状态码了解可能的原因。
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
"grant_type": "password",
"username": "C",
"password": "1",
"ttl": "1024000"
}' 'http://XXXX/XXXX/XXXX/token'
{
"access_token": "YWMtrR6ECkz8Eeyx6Y9j1eX9kbsMrFep3U6BvVj7KSnNonWqRx7gTPwR7Kzl-Q_xISNOAwMAAAF9UPZqbQAPoAAtYK9fWgaTNyuWoB3-6nGf_TXBx3Nt3XRZST-elU0x2A",
"expires_in": 1024000,
"user": {
"uuid": "aa471ee0-XXXX-XXXX-ace5-f90ff121234e",
"type": "user",
"created": 1637740861395,
"modified": 1637740861395,
"username": "c",
"activated": true
}
}
你通过用户 ID 获取用户 token。若用户 ID 不存在,你可以确定是否自动创建用户。
POST https://{host}/{org_name}/{app_name}/token
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
host | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息。 |
org_name | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息。 |
app_name | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 内容类型。请填 application/json 。 |
Accept | String | 是 | 内容类型。请填 application/json 。 |
Authorization | String | 是 | Bearer ${Your App Token} Bearer 是固定字符,后面加英文空格,再加上获取到的 App Token 的值。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
grant_type | String | 是 | 授权方式。 – 若值为 password ,通过用户 ID 和密码获取 token,需设置 username 和 password 参数。– 若值为 inherit ,通过用户 ID 获取 token,只需设置 username 参数。在该请求中,该参数需设置为 inherit 。 |
username | String | 是 | 用户 ID。 |
autoCreateUser | Boolean | 是 | 当用户不存在时,是否自动创建用户。自动创建用户时,需保证授权方式(grant_type )必须为 inherit ,API 请求 header 中使用 App token 进行鉴权。 |
ttl | Long | 否 | token 有效期,单位为秒。设置为 0 则 token 有效期为永久。若不传该参数,有效期默认为 60 天。此外,也可通过环信即时通讯云控制台 (opens new window)的用户认证 页面设置。该参数值以最新设置为准。注意:VIP 5 集群该参数单位为毫秒。 |
如果返回的 HTTP 状态码为 200
,表示成功获取 token。如果返回的 HTTP 状态码非 200,表示请求失败。你可以参考响应状态码了解可能的原因。
关于响应包体中的字段的描述,详见[通过用户 ID 和密码获取 token 的 API](#通过用户 ID 和密码获取用户 token) 中的响应字段的描述。
# 将 <YourAppToken> 替换为你在服务端生成的 App Token
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -H 'Authorization: Bearer <YourAppToken>' -d '{
"username": "test2333",
"grant_type": "inherit",
"autoCreateUser": true,
"ttl": 1024000
}' 'http://XXXX/XXXX/XXXX/token'
自动创建用户并获取 token 的响应如下:
{
"access_token": "YWMthyeiFhbyEe2eMGeYZSLlT7sMrFep3U6BvVj7KSnNonUiDB-wFvIR7a5Ttx2-01MYAwMAAAGCfIeryQAPoAAsuveDfkUrePkEM2Hgy6SaOTeTx3ETgh5cnXcP_HfBPg",
"expires_in": 1024000,
"user": {
"uuid": "220c1fb0-XXXX-XXXX-ae53-b71dbed35318",
"type": "user",
"created": 1659946472753,
"modified": 1659946472753,
"username": "test2333",
"activated": true
}
}
环信提供的 REST API 需要 app token (管理员权限 token) 才能使用,即发送 HTTP 请求时需要携带 app token。本文介绍如何获取 app token。
另外,环信 Server SDK 提供了用户、消息、群组、聊天室等资源的操作管理能力,详见 Java Server SDK 和 PHP Server SDK。
获取 token 时,服务器会返回 token 有效期,即响应中的 expires_in
字段的值。由于网络延迟等原因,系统不保证 token 在此值表示的有效期内绝对有效。如果发现 token 使用异常,如返回 HTTP 状态码 401,请重新获取新的 token。
注意
请不要频繁向服务器发送获取 token 的请求,同一账号发送此请求超过一定频率会被服务器封禁。
POST {https://host}/{org_name}/{app_name}/token
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
host | String | 是 | 环信即时通讯 IM 分配的用于访问 RESTful API 的域名。详见 获取环信即时通讯 IM 的信息。 |
org_name | String | 是 | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。详见 获取环信即时通讯 IM 的信息。 |
app_name | String | 是 | 你在环信即时通讯云控制台创建应用时填入的应用名称。详见 获取环信即时通讯 IM 的信息。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
Content-Type | String | 是 | 内容类型。请填 application/json 。 |
Accept | String | 是 | 内容类型。请填 application/json 。 |
参数 | 类型 | 是否必需 | 描述 |
---|---|---|---|
grant_type | String | 是 | 授权方式。该参数设置为固定字符串 client_credentials ,即客户端凭证模式。 |
client_id | String | 是 | App 的 client_id ,用于生成 app token 调用 REST API。详见 环信即时通讯云控制台 (opens new window)的应用详情 页面。 |
client_secret | String | 是 | App 的 client_secret ,用于生成 app token 调用 REST API。详见 环信即时通讯云控制台 (opens new window)的应用详情 页面。 |
ttl | Long | 否 | token 有效期,单位为秒(s)。设置为 0 则 token 有效期为永久。若不传该参数,默认值为 60 天,也可通过环信即时通讯云控制台 (opens new window)的用户认证 页面设置。该参数值以最新设置为准。 |
如果返回的 HTTP 状态码为 200
,表示成功返回 token。响应 body 包含如下字段:
参数 | 类型 | 描述 |
---|---|---|
access_token | String | 有效的 Token 字符串。 |
expires_in | Long | Token 有效时间,单位为秒,在有效期内不需要重复获取。 |
application | String | 当前 App 的 UUID 值。 |
如果返回的 HTTP 状态码非 200
,表示请求失败。你可以参考 响应状态码 了解可能的原因。
curl -X POST -H 'Content-Type: application/json' -H 'Accept: application/json' -d '{
"grant_type": "client_credentials",
"client_id": "YXA6i-Ak8Ol4Eei2l11ZjV-EAg",
"client_secret": "YXA6VunqiNxoB7IwXHInk1cGiXOOJfc",
"ttl": "1024000"
}' 'http://a1.easemob.com/easemob-demo/testapp/token'
{
"access_token": "YWMte3bGuOukEeiTkNP4grL7iwAAAAAAAAAAAAAAAAAAAAGL4CTw6XgR6LaXXVmNX4QCAgMAAAFnKdc-ZgBPGgBFTrLhhyK8woMEI005emtrLJFJV6aoxsZSioSIZkr5kw",
"expires_in": 1024000,
"application": "8be024f0-e978-11e8-b697-5d598d5f8402"
}
开通配置环信即时通讯 IM 服务获取环信APPkey
配置环信即时通讯 IM 服务前,请确保已经具备以下条件:
参照以下步骤在环信即时通讯云控制台创建应用和购买即时通讯 IM 服务。
注意
appname
:你设置的应用名称,用于生成 App Key。该参数的值只能包含小写字母、数字和连字符,不能超过 32 个字符。Appkey
:即时通讯服务分配给每个应用的唯一标识,由 orgname
和 appname
参数的值组成,生成后无法修改。数据中心
:设置后无法修改。你可以通过以下方法开通或升级版本。
在 即时通讯IM 服务版本 页面,根据业务实际需求选择所需的服务版本和可选增值服务。该页面的配置参数说明如下表所示:
参数项 | 描述 |
---|---|
选择要开通服务的 Appkey | 请确认 App Key 是否选择正确,购买后无法修改。 |
请选择服务版本 | 服务版本的选择如下: – 当 App Key 为免费版时,可购买专业版、旗舰版或尊享版,不可单独购买增值服务。 – 当 App Key 为专业版时,可购买旗舰版、尊享版或单独购买增值服务。 – 当 App Key 为旗舰版时,可购买尊享版或单独购买增值服务。 – 当 App Key 为尊享版时,仅支持单独购买增值服务。 |
可选增值服务 | 请根据实际需求选择增值功能: – 单个群成员数上限和单个用户可加入群组数上限:不支持叠加购买;以单个群成员数上限举例说明,如果旗舰版购买了 8000 人/群的增值服务,则表示单个群成员上限配置提升至 8000 人/群。 – 消息云存储时长和 REST API 接口调用频率上限:支持可叠加购买,即支持多倍购买;以消息云存储时长举例说明,如购买时选择了 10 份,则表示消息云存储时长延长 300 天(30 天*10)。 |
注意
服务购买页显示的预估费用仅用于做参考,预估费用仅包含基础费用,具体费用以每月账单为准。
购买成功后即刻生效,当天开始计费,每月 1 号自动扣除上月总消耗费用。
在环信即时通讯云控制台,你可以查看你的环信即时通讯 IM 服务的如下信息:
应用信息 | 描述 | 如何查看 |
---|---|---|
Orgname | 环信即时通讯 IM 为每个公司(组织)分配的唯一标识。该参数是 APPKEY 的一部分。 | 在环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。 |
Appname | 你在环信即时通讯云控制台 (opens new window)创建应用时填入的应用名称。该参数是 AppKey 的一部分。 | 在环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。 |
APPKEY | 应用的唯一标识,由 Orgname 和 Appname 组成,生成后不允许修改。 | 在环信即时通讯云控制台 (opens new window)的 应用详情 页面查看。 |
服务器域名(host ) | RESTful API 请求域名。环信为应用提供的 REST API 和 WebSocket 的请求域名。 | 在环信即时通讯云控制台 (opens new window)的 服务概览 页面查看。 |
数据中心 | 环信 IM 提供的分布在全球的多个数据中心: – 国内数据中心:北京 1 区和北京 Vip6 区 – 海外数据中心:新加坡 1 区、 法兰克福(法国)和弗吉尼亚(美国) | 在环信即时通讯云控制台 (opens new window)的 服务概览 页面查看。 |
创建应用后,参照以下步骤在环信即时通讯云控制台上查看环信即时通讯 IM 服务的详情以及进行配置。
在环信即时通讯云控制台的首页的 应用列表 中,点击目标应用的 操作 栏中的 查看 按钮,在左侧导航栏选择 即时通讯 > 功能配置 > 功能配置总览,您可以查看到当前 App Key 的服务配置并根据实际业务需求管理相关配置,具体操作说明如下:
使用离线推送通知之前,需完成各平台的证书配置。当前支持以下平台:苹果 APNs、谷歌 FCM、华为、小米、OPPO、VIVO 和魅族。
开启环信即时通讯 IM 服务后,按照以下步骤添加消息推送证书:
环信即时通讯 IM 提供消息回调服务。配置回调后,应用服务器会收到所选类型的消息和事件。
购买环信即时通讯 IM 服务后,按照以下步骤添加消息回调证书:
注意
如果你不再允许某个 IP 地址继续发送 REST 消息,可以在 IP 白名单中将其删除。如果你删除了 IP 白名单中所有 IP,即白名单列表为空,则默认所有 IP 地址均可发送 REST 消息。
登录环信即时通讯云控制台,选择 费用中心 > 账户中心,可查看你当前的账户余额和支出明细。
登录环信即时通讯云控制台,选择 费用中心 > 订单中心,可查看你当前的所有订单记录。
订单中心页面上的订单状态说明如下:
点击 操作 栏中的 详情,可查看订单详情。
登录环信即时通讯云控制台,选择 费用中心 > 消费账单,可查看你当前的已生成的账单记录。
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
chat 聊天 APP开发接入 环信 IM即时通讯SDK教程
核心代码示例,详情参阅demo
jsBridge.easeIm.chat({
//字符串,标题栏文字,一般用对方昵称或备注
title: $("#chat_title").val(),
//字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
conversationId: $("#chat_conversationId").val(),
//字符串,聊天类型
//single 单聊
//group 群聊
//room 聊天室
chatType: $("#chat_chatType").val(),
//字符串,消息ID,用于查询历史记录时的定位消息ID
historyMsgId: $("#chat_historyMsgId").val(),
//布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
isRoam: JSON.parse($("#chat_isRoam").val()),
//字符串,输入区菜单样式
//all 完整模式
//disableVoice 不可用语音
//disableEmojIcon 不可用表情
//disableVoiceEmojIcon 不可用语音和表情
//onlyText 仅文本输入
inputMenuStyle: $("#chat_inputMenuStyle").val(),
//字符串数组,点 + 号打开的扩展功能
//留空则全部显示
inputExtItems: [
"camera", //相机
"album", //相册
"video", //视频
"file" //文件
]
}, function(succ, data) {
if (!succ) {
alert("开启聊天失败\n" + JSON.stringify(data));
}
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.chat({
//字符串,标题栏文字,一般用对方昵称或备注
title: $("#chat_title").val(),
//字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
conversationId: $("#chat_conversationId").val(),
//字符串,聊天类型
//single 单聊
//group 群聊
//room 聊天室
chatType: $("#chat_chatType").val(),
//字符串,消息ID,用于查询历史记录时的定位消息ID
historyMsgId: $("#chat_historyMsgId").val(),
//布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
isRoam: JSON.parse($("#chat_isRoam").val()),
//字符串,输入区菜单样式
//all 完整模式
//disableVoice 不可用语音
//disableEmojIcon 不可用表情
//disableVoiceEmojIcon 不可用语音和表情
//onlyText 仅文本输入
inputMenuStyle: $("#chat_inputMenuStyle").val(),
//字符串数组,点 + 号打开的扩展功能
//留空则全部显示
inputExtItems: [
"camera", //相机
"album", //相册
"video", //视频
"file" //文件
]
}, function(succ, data) {
if (!succ) {
alert("开启聊天失败\n" + JSON.stringify(data));
}
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.chat({
//字符串,标题栏文字,一般用对方昵称或备注
title: $("#chat_title").val(),
//字符串,会话ID,单聊时指对方ID,群聊和聊天室时指群和聊天室ID
conversationId: $("#chat_conversationId").val(),
//字符串,聊天类型
//single 单聊
//group 群聊
//room 聊天室
chatType: $("#chat_chatType").val(),
//字符串,消息ID,用于查询历史记录时的定位消息ID
historyMsgId: $("#chat_historyMsgId").val(),
//布尔,是否开启漫游,用于标记是否优先从服务器拉取消息
isRoam: JSON.parse($("#chat_isRoam").val()),
//字符串,输入区菜单样式
//all 完整模式
//disableVoice 不可用语音
//disableEmojIcon 不可用表情
//disableVoiceEmojIcon 不可用语音和表情
//onlyText 仅文本输入
inputMenuStyle: $("#chat_inputMenuStyle").val(),
//字符串数组,点 + 号打开的扩展功能
//留空则全部显示
inputExtItems: [
"camera", //相机
"album", //相册
"video", //视频
"file" //文件
]
}, function(succ, data) {
if (!succ) {
alert("开启聊天失败\n" + JSON.stringify(data));
}
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
status 获取当前状态 APP开发接入环信 IM即时通讯SDK
核心代码示例,详情参阅demo
jsBridge.easeIm.status(function(succ, data) {
//data.inited 是否已初始化
//data.connected 是否已连接到IM服务器
//data.logined 是否已登录
//data.username 已登录时,当前登录的用户ID
alert(JSON.stringify(data));
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.status(function(succ, data) {
//data.inited 是否已初始化
//data.connected 是否已连接到IM服务器
//data.logined 是否已登录
//data.username 已登录时,当前登录的用户ID
alert(JSON.stringify(data));
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.status(function(succ, data) {
//data.inited 是否已初始化
//data.connected 是否已连接到IM服务器
//data.logined 是否已登录
//data.username 已登录时,当前登录的用户ID
alert(JSON.stringify(data));
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
userInfo 设置用户信息 APP开发接入环信 IM即时通讯SDK教程
核心代码示例,详情参阅demo
jsBridge.easeIm.userInfo({
//可选,默认头像图片链接
avatar: "https://www.yimenapp.com/assets/trtc/a.png",
//可选,设置一组用户信息
//以 username 为唯一标识增加或覆盖已有的用户信息
users: [
{
//字符串,用户ID
username: "user1",
//字符串,昵称
nickname: "张三",
//字符串,头像图片链接
avatar : "https://www.yimenapp.com/assets/trtc/a1.png"
},
{
username: "user2",
nickname: "李四",
avatar : "https://www.yimenapp.com/assets/trtc/a2.png"
}
]
}, function(succ, data) {
alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.userInfo({
//可选,默认头像图片链接
avatar: "https://www.yimenapp.com/assets/trtc/a.png",
//可选,设置一组用户信息
//以 username 为唯一标识增加或覆盖已有的用户信息
users: [
{
//字符串,用户ID
username: "user1",
//字符串,昵称
nickname: "张三",
//字符串,头像图片链接
avatar : "https://www.yimenapp.com/assets/trtc/a1.png"
},
{
username: "user2",
nickname: "李四",
avatar : "https://www.yimenapp.com/assets/trtc/a2.png"
}
]
}, function(succ, data) {
alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.userInfo({
//可选,默认头像图片链接
avatar: "https://www.yimenapp.com/assets/trtc/a.png",
//可选,设置一组用户信息
//以 username 为唯一标识增加或覆盖已有的用户信息
users: [
{
//字符串,用户ID
username: "user1",
//字符串,昵称
nickname: "张三",
//字符串,头像图片链接
avatar : "https://www.yimenapp.com/assets/trtc/a1.png"
},
{
username: "user2",
nickname: "李四",
avatar : "https://www.yimenapp.com/assets/trtc/a2.png"
}
]
}, function(succ, data) {
alert(succ ? "设置成功" : "设置失败\n" + JSON.stringify(data));
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
logout 退出 APP开发接入环信 IM即时通讯SDK
核心代码示例,详情参阅demo
jsBridge.easeIm.logout(function(succ, data) {
alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.logout(function(succ, data) {
alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.logout(function(succ, data) {
alert(succ ? "退出成功" : "退出失败\n" + JSON.stringify(data));
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
login 登录 APP开发接入 环信 IM即时通讯SDK
核心代码示例,详情参阅demo
//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
//字符串,用户ID
//请使用 用户体系集成 RESTful API 管理用户
//或环信控制台 用户管理
username: $("#login_username").val(),
//字符串,用户鉴权token
token: $("#login_token").val(),
//字符串,密码
password: $("#login_password").val()
}, function(succ, data) {
alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
//字符串,用户ID
//请使用 用户体系集成 RESTful API 管理用户
//或环信控制台 用户管理
username: $("#login_username").val(),
//字符串,用户鉴权token
token: $("#login_token").val(),
//字符串,密码
password: $("#login_password").val()
}, function(succ, data) {
alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
//token 和 password 任选其一,优先使用 token
jsBridge.easeIm.login({
//字符串,用户ID
//请使用 用户体系集成 RESTful API 管理用户
//或环信控制台 用户管理
username: $("#login_username").val(),
//字符串,用户鉴权token
token: $("#login_token").val(),
//字符串,密码
password: $("#login_password").val()
}, function(succ, data) {
alert(succ ? "登录成功" : "登录失败\n" + JSON.stringify(data));
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->
用做网页的技术做APP! 一门提供标准化的jsbridge-mini.js库,您只需要在页面引用并执行JS即可实现各种原生APP、原生PC的功能能力。 ==================APP端================== 【APP端】(安卓版&苹果版)目前提供200+原生功能,2000+JS映射接口,用做网站的技术即可实现各种原生APP能力、APP demo地址https://www.yimenapp.com/doc/demo.cshtml下载教程: ♦ JS-SDK 引用方式: ♦ 普通网页 script 方式加载:下载最新版,请在页面上调用 jsBridge 接口之前引用 jsbridge-mini.js 库; ♦ js module 方式引用:npm install ym-jsbridge 具体请参考 npm package |
环信 IM即时通讯
核心代码示例,详情参阅demo
jsBridge.easeIm.init({
//字符串,环信平台上创建的应用 AppKey
appKey: $("#init_appKey").val(),
//布尔,如果之前处于登录状态,初始化成功后是否自动登录
autoLogin: JSON.parse($("#init_autoLogin").val()),
//布尔,是否对发送消息进行加密
useEncryption: JSON.parse($("#init_useEncryption").val()),
//布尔,是否发送消息已读回执
requireReadAck: JSON.parse($("#init_requireReadAck").val()),
//布尔,是否发送消息已送达回执
requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
//布尔,是否开启调试模式
//调试模式能输出更多的日志信息,但会影响运行性能
debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});
A标签执行JS示例代码
<a href="javascript:void(0)" onclick="zhixing()">执行</a>
<!-- 写入一个A标签href值为"javascript:void(0)",定义点击事件onclick;-->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- 在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接;-->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.init({
//字符串,环信平台上创建的应用 AppKey
appKey: $("#init_appKey").val(),
//布尔,如果之前处于登录状态,初始化成功后是否自动登录
autoLogin: JSON.parse($("#init_autoLogin").val()),
//布尔,是否对发送消息进行加密
useEncryption: JSON.parse($("#init_useEncryption").val()),
//布尔,是否发送消息已读回执
requireReadAck: JSON.parse($("#init_requireReadAck").val()),
//布尔,是否发送消息已送达回执
requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
//布尔,是否开启调试模式
//调试模式能输出更多的日志信息,但会影响运行性能
debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});
}
</script>
<!--执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可;-->
按钮执行JS示例代码
<button onclick="zhixing()" >执行</button>
<!-- //写一个按钮,定义点击执行事件; -->
<script src="您的服务器URL/jsbridge-mini.js"></script>
<!-- //在您的服务器引入一门JS地址,请下载jsbridge-mini.js上传您自己的服务器获取链接; -->
<script type="text/javascript">
function zhixing() {
<!--这里可以直接复制JS核心代码到此{}括号内-->
jsBridge.easeIm.init({
//字符串,环信平台上创建的应用 AppKey
appKey: $("#init_appKey").val(),
//布尔,如果之前处于登录状态,初始化成功后是否自动登录
autoLogin: JSON.parse($("#init_autoLogin").val()),
//布尔,是否对发送消息进行加密
useEncryption: JSON.parse($("#init_useEncryption").val()),
//布尔,是否发送消息已读回执
requireReadAck: JSON.parse($("#init_requireReadAck").val()),
//布尔,是否发送消息已送达回执
requireDeliveryAck: JSON.parse($("#init_requireDeliveryAck").val()),
//布尔,是否开启调试模式
//调试模式能输出更多的日志信息,但会影响运行性能
debug: JSON.parse($("#init_debug").val())
}, function(succ, data) {
alert(succ ? "成功" : "失败\n" + JSON.stringify(data));
});
}
</script>
<!-- //执行核心代码;
//如果需要进入页面就执行,去掉点击事件即可; -->