澳门777娱乐官方 通讯企业 避免 babel澳门pt777网址 二次打包引起的错误,后在后台将不自动重连

避免 babel澳门pt777网址 二次打包引起的错误,后在后台将不自动重连

摘要即时通信云微博云信于二〇一七年1月11日宣布4.4版,这次更新为首要版本更新,实际情况见小说内容。公布的版本本次宣布的版本号为
4.4版,更新时间为:二〇一七年四月八日。iOS
更新内容新扩张加闲聊室客户特别掉线或主动退出的时候自动驱除队列,满含接口NIMChatroomQueueUpdateRequest
增添 transient 属性NIMChatroomEventType 加多枚举
NIMChatroomEventTypeQueueBatchChangeNIMChatroom伊芙ntInfoQueueChangeItemsKey
闲谈室批量退换成分键,值为带有八个键值对的字典改良修改清空不设有的近来对话的音讯,回调上来的
NIMRecentSession 为 nil 的题目Android 更新内容新扩充1.
增加谈天室客商极其掉线或积极退出的时候自动扫除队列:ChatRoomService#updateQueueEx。影响类和接口:增加通报类型:NotificationType#CHATROOM_QUEUE_BATCH_CHANGE,表示队列批量改成。加多附件类型:ChatRoomPartClearAttachment,富含解除队列的剧情。2.
NOS 财富下载加多 CDN 帮忙,增多二种可配置模板,见
SDKOptions#ServerAddress#nosAccess。3. 适配 Android O
版本布告栏,扩展云信即时新闻通道、消息免干扰通道,化解 target 指向26
通知栏不能弹出的标题。4. 适配 Android O
版本后台运转乘机制,开荒者请必须在清单文件之中配备: <service
android:name=”com.netease.nimlib.service.ResponseService” />5. 适配
Android O+ 版本,化解 target 指向27 InvalidKeySpecException 招致的 SDK
不能登入的难题。6. 增添新的 IPC 数据共享机制,替换不安全的多进度读写
SharedPreference,开辟者请必需在项目清单文件里布署: <provider
android:name=”com.netease.nimlib.ipc.NIMContentProvider”
android:authorities=”{应用软件包名}.ipc.provider” android:exported=”false”
android:process=”:core” />7. 加多 SDKOptions#asyncInitSDK 援助异步
SDK 初阶化,减少 Application#onCreate 中 SDK
开首化函数的一同响适那时候候间。8. 增加 SDKOptions#reducedIM 扶持弱 IM
场景。假诺你的应用程式 仅在某些情景按需选拔 IM
本事(无需在行使运维时就做活动登入卡塔尔,并无需保证音信布告、数据的实时性,那么这里能够填
true。弱 IM 场景下,push
进程选取懒运维计策(延迟到顾客登入阶段卡塔尔国,运转后其生命周期将跟随 UI
进度,裁减弱 IM 场景的APP的后台耗能开支。9. 加多SDKOptions.checkManifestConfig,自动物检疫查 SDK
配置是不是完全,要是不完全将抛出格外提醒。刚强建议开荒者在开拓阶段开启检查,检查通过后,线上景况关闭。10.
API 调用框架巩固:帮助带 Looper
的非UI线程发起的异步API调用,直接回调到调用者线程。老版本会暗许回调到 UI
线程。提供异步强迫转成同步的接口:NIMClient#syncRequest,允许设置最大联合等待时间,扶持非
UI 线程里须要联合调用云信 API之处。加多自动生成的
NIMSDK类,开采者能够直接运用 NIMSDK#getXXXService方法得到服务接口,不再供给传递 XXXService.class,简化 API
调用方式。其余插件自动生成的调用入口类为:NIMChatRoomSDK、NIMLuceneSDK。比如利用NIMSDK.getAuthService(State of Qatar.login(State of Qatar替换NIMClient.getService(AuthService.classState of Qatar.login(卡塔尔国。11.
增多 NIMClient#getSDKVersion 接口,运维时收获当前并轨的 SDK
版本号。退换1.
类改换:com.netease.nimlib.sdk.uinfo.UserInfoProvider#UserInfo
包名更动为
com.netease.nimlib.sdk.uinfo.model.UserInfo,开垦者进级到此版本时,请统一修改UserInfo import 的包名。2. 类成员函数退换:UserInfoProvider 移除
getDefaultIconResId、getAvatarForMessageNotifier、getTeamIcon
多少个函数,统一替换为新添的函数,依照会话类型、会话ID重回信息提醒要求的头像位图:getAvatarForMessageNotifier(sessionType,
sessionId卡塔尔(قطر‎,请参谋最新 Demo 源码中 NimUserInfoProvider
类中提供的轮番方案。3. 增添 NIMUitl#isMainProcess 接口,保险 SDK
开始化及 应用程式 开头化进程推断方法统一,请开拓者替换 Application#onCreate
中主进程剖断情势为此措施。4. 移除
SDKOptions#enableSDKBackgroundReconnectStrategy
后台自动重连开关,请采取弱 IM 格局替换。5. 修复 Push
进度自动登入被踢出后,部分机器进度被系统往往调节重启时照旧发起连接的主题材料。6.
针对 SDKOptions#sdkStorageRootPath
配置的外置存款和储蓄缓存根目录,若是开拓者配置在 Context#getExternalCacheDir
及 Context#getExternalFilesDir
等选用扩张存款和储蓄缓存目录下(即/sdcard/Android/data/{package}),SDK
内部将不再检查写权限。值得注意的是,改缓存目录下的的公文子禽趁机App卸载而被删除,也得以由客户手动在设置分界面里面灭亡。7.
优化唤醒计策,减少不供给的唤起。优化 Push 进程无法唤起 UI 时将运用的
“自寻短见机制”,先切断全部唤醒路线后再安全退出。8.
修复无名氏闲聊室断网重连进程中一旦现身回调 1001
的错误码时(SDK不或许通过回调获取聊天室ip卡塔尔时,SDK 不可能持续重连的主题素材。9.
修复闲谈室调用 ChatRoomSerivce#updateMyRoomRole
后,在断网重连过程中,错失剧中人物消息更新的标题。Windows(PC卡塔尔国 SDK
更新内容新扩张闲谈室客商特别掉线或主动退出的时候自动消灭队列,
nim_chatroom.hnim_chatroom_queue_offer_async(…), json_extension
= “{\”transient\”:true}”
设置这一次创新的成分会在特定情景下被机关消亡新扩展示公布告类
kNIMChatRoomNotificationIdQueueBatchChanged
用在麦秋月队列中有批量变动,产生在要素提交者离开谈心室恐怕从谈天室非凡掉线时修复修复获取近年来会话列表时大概引致CPU增高的标题Web
SDK
更新内容新增闲谈室新扩张朱明队列成分,扩大可安顿选项,客商从闲谈室掉线或分离的时候,供给删除这几个因素更动撤除同步群成员配置选项,免强供给开采者按需同步群成员列表下载地址请从以下官方网址地址下载:

摘要即时通信云乐乎云集SDK新版揭橥,此次宣布的版本号为:2.5.0。宣布的本子此次发布的版本号为
2.5.0版,更新时间为:二零一五年11月08日。iOS 2.5.0 更新内容新增多为期清理
SDK
日志的功效丰盛闲谈室偶尔禁言的接口帮衬中间转播消息网络通话新扩展是还是不是自动旋转远端画面包车型大巴设置autoRotateRemoteVideo改进修复闲聊室
Tip 音信不恐怕平常深入剖判的难题Android 2.5.0 更新内容新增添1.
拉长文本音信的全局找出接口:MsgService#searchAllMessageHistory。2.
抬高新闻转载功效:MessageBuilder#createForwardMessage,扶植除布告音信和音录像音讯以外的音讯类型。3.
足够闲谈室有的时候禁言接口:ChatRoomService#markChatRoomTempMute,帮助设置临时禁言时间长度。更换1.
将注册群文告音信过滤接口移动到 MsgService中:MsgService#registerIMMessageFilter
,并援助单聊和群聊的布告类型音讯过滤,不再限于群文告音信,同期扶植音摄像类型音信过滤。2.
谈心室构造调解,闲谈室业务仅在 UI 进度管理。3. SDK
输出jar包按模块分离:nim-sdk.jar(必得)、nim-chatroom.jar(可选聊天室模块)、nim-rts.jar(可选实时会话白板模块)、nim-avchat.jar(可选实时音录制模块)、nrtc-sdk.jar(实时会话、实时音录像底子库),供开拓者按需组合使用。Web
SDK 2.5.0
更新内容改造获取客商名片数组节制每回最多只好得到1肆拾多个片子新扩张转载音信重发音讯获得富含关键词的地头历史记录新添参数global表示是不是全局寻觅同步按键syncExtraTeamInfo,
调节是或不是同步额外的群消息, 暗许true会同步额外的群音信,
近期席卷最近报到顾客是或不是展开有些群的音讯提醒 (SDK 只是存款和储蓄了此消息,
具体用此音信来做哪些业务完全由开辟者调整卡塔尔国调用接口校勘自身的群属性来关闭/开启某些群的信息提示调用接口是不是供给群消息通知来查询是或不是需求群新闻通告设置闲聊室有时禁言Windows(PCState of QatarSDK 2.5.0
更新内容修复语音播报截止延迟难点对话列表更新时消息未读数目错误的标题新扩展新闻历史本地全局寻找,
nim_msglog.h群组扩张得到群音信和成员音信的同台接口,
nim_team.h闲谈室临时禁言, nim_chatroom.h音讯转发接口,
nim_talk.h音录制辅助SOCKS5代理对端录像画面自动旋转开关下载地址请从以下官方网站地址下载:

摘要即时通信云天涯论坛云信SDK新版宣布,此番发布的版本号为:3.2.0,新增了多个人实时白板等注重特点。公布的本子此番发表的版本号为
3.2.0版,更新时间为:二〇一五年1月一日。iOS
更新内容新扩大在NIMSDKConfig.h中加进是还是不是须求多端同步未读数的开关shouldSyncUnreadCount新增人实时会话(几个人白板)服务,帮助单播和播放发送实时会话数据互连网通话新扩大语音前管理开关设置,能够选择性关闭语音降噪和人声检查测量试验等职能互连网通话的网络境况扩张客户id
参数,以分别不相同客商的网络情形相互作用直播新扩充录像画面混屏格局设置,能够选取预设的二种混屏形式退换音信撤回回调改换3.2.0
早前:onMessageRevoked:3.2.0
之后:onRecvRevokeMessageNotification:NIMMediaManager的回调接口和其余管理器一致为addDelegate:以至removeDelegate:网络通话的互联网情状回调接口从onCall:netStatus:退换为onNetStatus:user:,扩大了用户id 参数互连网通话的互连网情状查询接口
从netStatus退换为netStatus:,扩展了顾客 id
参数实时会话数据服务器摄像文件格式变化:3.2.0
以前:客商发送的多寡包直接被写入文件3.2.0
之后:客户发送每贰个数目包前净增三亚(包长字段和岁月戳字段)后再写入摄像文件,格式详细情形请参谋使用指南的服务器录像文件格式章节UI
组件提供更宏观,更简洁的构造,并支持 CocoaPodsAndroid 更新内容新增加1.
抬高第三方推送服务:NIMPushClient,MixPushService,如今已接入三星(Samsung卡塔尔推送。2.
增多会话未读数多端同步功效,开关为
SDKOptions#sessionReadAck,暗许关闭。3.
丰裕第三方推送免干扰设置:MixPushService#setPushNoDisturbConfig。4.
增加本地音讯拉取扩充接口:MsgService#queryMessageListExTime,协理时间和条数同盟限定结果集。5.
抬高六十一个人援救。6.
增加音录像相互影响直播连麦画中画混屏方式设置:AVChatOptionalConfig#livePIPMode。7.
添扩展个人白板:- 成立二个两个人白板房间, RTSManager2#createSession-
参预三个四人白板房间, RTSManager2#joinSession- 离开叁个多个人白板房间,
RTSManager2#leaveSession改造1. 低于辅助版本改换为Android 4.0 (Ice Cream
SandwichState of Qatar, 个中音录制通话最低协理版本为Android 4.1 (Jelly Bean卡塔尔。2.
登陆优化。3.
音讯撤回优化,针对离线时对方发送音讯并撤回之处,下一次登陆时会收到
MsgServiceObserve#observeRevokeMessage
公告,能够得到被撤回音讯的年华,便于在 UI
上表现离线时期音信撤回的提示。4. 白板状态回调 RTSChannelStateObserver
退换:- 全数回调增添 localSessionId 参数- 加多 onUserJoin 回调- 加多onUserLeave 回调- 移除 onRecordInfo 回调- 更换 onConnectResult
回调,加多录像文件相应音信5. 白板服务器摄像数据格式修正。Windows(PC卡塔尔国 SDK
更新内容修复优化音频管理流程优化高清录制头数量深入分析,升高高清录像头搜罗帧率退换逻辑:关闭Mike风将不感觉是静音状态,与伴音效率宽容服务器白板摄像,针对3.2随后的版本,在每条数据前增加4字节长度信息和4字节的日子戳,详细情况看支动手册优化IM和谈心室登陆流程新增添新添人白板效率,通过nim_rts_create_conf创造六个人白板,再由nim_rts_join_conf接口参加多少人白板。多少人白板不扶助录像通道,假使急需上层应用程式能够其它开启多个人音录像通话。白板的创始及投入等接口将赶回白板通道的channelid,用于和服务器的白板会话抄送对应。新添设施等级次序kNIMDeviceType奥迪(AudiState of QataroHook,客商可搜集播放器音频,必要动用sdk新扩张的nim_audio_hook.dll设备监听中能够监听伴音设备,kNIMDeviceType奥迪oHook发轫专门的学问和被替代(顶替是指伴音只同意有三个,如若有别的进度也采纳了sdk中的伴音效用,则会被代替,这个时候早前的伴音失效),将会通过回调上报。会话新闻已读未读状态多端同步会话属性扩展设置置顶和扩大数据字段接口,
nim_session.hIM和闲聊室扩充取得当前登录状态的接口, nim_client.h
nim_chatroom.h下载地址请从以下官方网址地址下载:

摘要即时通信云新浪云信于二〇一八年0十月04日宣布4.6版,这次更新为主要版本更新,详细情况见随笔内容。公布的本子此番宣布的版本号为
4.6版,更新时间为:二零一八年0十七月04日。iOS
更新内容新扩充新添在后台自动实施重连开关@interface NIMSDKConfig :
NSObject/** * 是还是不是防止后台重连 * @discusssion 私下认可为NO。即默许景况下,当程序退到后台断开连接后,假诺 App 还能运作,SDK
将继续实践自动重连机制。设置为 YES
后在后台将不自动重连,重连将被推移到前台进行。 *
独有格外客户场景才必要此设置,无显明原因请勿设置。 */@property
(nonatomic,assignState of Qatar BOOL
reconnectInBackgroundStateDisabled;@end新添聊天室历史记录拉取能够按类型筛选字段/**
* 检索服务器历史消息选项 (服务器卡塔尔(قطر‎ */@interface
NIMHistoryMessageSearchOption : NSObject/** * 查询的新闻类型 *
@discusssion 新闻类型组合,默以为 nil ,找出全类型。
此参数只对闲谈室会话有效 */@property (nonatomic,copy)
NSArray<NSNumber *>
*messageTypes;@end易盾反垃圾,帮忙对单条音讯配置相应的反垃圾业务法则,NIMAntiSpamOption新添字段
businessId。/** * 反垃圾选项 * @discussion
那几个选项用于配置易盾反垃圾,设置 enabled 为 YES (默感到 NO卡塔尔(قطر‎后该音信进投递到易盾系统开展反垃圾检验 (供给张开易盾服务)
*/@interface NIMAntiSpamOption : NSObject/** *
客商在易盾配置的附加反垃圾的事务ID */@property
(nullable,nonatomic,copy) NSString
*businessId;@end新添闲聊室队列权限修正,NIMChatroomUpdateTag中新扩大字段
NIMChatroomUpdateTagQueueModificationLevel改正聊天室缓存客户扩大音讯,有限支撑掉线重连后不免除Android
更新内容新扩大1. 易盾反垃圾帮衬对单条音讯配置相应的反垃圾业务法规。2.
新增加支持国外推送 FCM 以致One plus推送。3. 支持配置闲聊室队列管理权限。4.
扶植群众管理理员废除其余人新闻。5. 支持摄像新闻取得远程缩略图 url。6.
谈心室历史记录拉取可按类型筛选。改变1. 修复金立偶现崩溃难题。2.
接口更换:List<Nim罗布otInfo> get罗布otInfo(List<String>
accountsState of Qatar;改为List<Nim罗布otInfo>
get罗布otInfoList(List<String>
accountsState of Qatar;3.MessageNotifierCustomization新扩张音信撤回文告文案自定义接口:/**
* 定制音信撤回提示文案 * @param revokeAccount 撤回操作者账号 * @param
item 被撤回的音讯 * @return */String makeRevokeMsgTip(String
revokeAccount, IMMessage
itemState of Qatar;4.ChatRoomPartClearAttachment附属类小零器件内容改动getContentMap(State of Qatar重返由Map<String,Object>变为Map<String,
String>getChatRoomQueueChangeType(卡塔尔返回ChatRoomQueueChangeType.PARTCLEAQX56Windows(PCState of QatarSDK
更新内容新添群主或群众管理理员能够撤回别的群成员发送的新闻的机能顾客配置的对某单条音讯此外的反垃圾的事务ID的功用摄像音讯主动获取封面作用NOS域名迁移NOS加快地址,上传、下载地址等统一配备闲聊室历史记录拉取能够按类型筛选作用谈天室队列权限可安插闲扯室更新客户音讯后,断线重连进来谈心室时,相应音讯依然还在的作用Web
SDK
更新内容新添闲聊室队列管理权限可安插闲聊室历史记录拉取能够按类型筛选群众管理理员能够撤回其余人发的音讯易盾反垃圾,扶助对单条音信配置相应的反垃圾业务法则更改WebSocket链路若因网络状态不好,悄悄被踢,将电动重连,不再由上层做处理WebSocket握手重连优化,消弭实例接口下载地址请从以下官方网址地址下载:

器材项目

当下云信扶植的登入端有以下三种等级次序

  • 'Android' (安卓)
  • 'iOS' (苹果)
  • 'PC' (桌面)
  • 'Web' (浏览器)
  • 'Mac' (桌面)

打包

如果开拓者选用 webpack/babel 来打包, 那么请使用 exclude 将 SDK 文件肃清,
制止 babel 一遍打包引起的大错特错

重发音讯

比方音讯发送战败, 那么可以重发新闻

nim.resendMsg({
msg: someMsg,
done: sendMsgDone
})
console.log('正在重发消息', someMsg)

登录端

登入端代表签到在有些设备上的连锁音信, 犹如下字段

  • type:
    登录的配备项目
  • os: 登陆设备的操作系统
  • mac: 登入设备的 mac 地址
  • deviceId: 登入设备ID, uuid
  • account: 登入的帐号
  • connectionId: 登入设备分配的总是号
  • ip: 登入的服务器 IP
  • time: 登陆时间
  • online: 是不是在线

闲谈室音信对象

谈天室音信对象有以下字段

  • chatroomId: 聊天室 ID
  • idClient: SDK生成的音信id, 在出殡和下葬音信随后会回到给开拓者,
    开辟者能够在出殡和安葬音讯的结果回调里面依据这一个ID来推断相应音信的发送状态,
    到底是出殡和下葬成功了或然发送战败了,
    然后基于此情景来更新页面包车型大巴UI。假若发送退步, 那么能够重新发送此讯息
  • from: 音讯发送方, 帐号
  • fromNick: 新闻发送方的外号
  • fromAvatar: 新闻发送方的头像
  • fromCustom: 新闻发送方的增加字段
  • fromClientType:
    发送方的设施档次
  • type:
    闲谈室消息类型
  • flow: 音讯的流向
  • ‘in’代表此新闻是收到的音信
  • ‘out’代表此音信是发生的音讯
  • text: 文本音讯的文本内容,
    请仿效发送闲聊室文本新闻
  • file: 文件音信的文件对象,
    具体字段请参见图表对象、节奏对象、录制对象、文本对象,
    请参考发送闲谈室文件信息
  • geo:
    地理地点新闻的地理地方对象,
    请参考发送闲聊室地理地点音信
  • tip: 提示音讯的内容,
    请参照他事他说加以考查出殡闲谈室提示音讯
  • content: 自定义音信的消息内容, 开辟者能够自动扩大,
    建议封装成JSON格式字符串,
    请参谋发送闲谈室自定义音信
  • attach:
    闲聊室文告新闻的叠合音信,
    仿效谈心室公告消息的体系来查阅安详严整
  • custom: 扩展字段
  • 引入使用JSON格式营造, 非JSON格式的话, Web端会寻常接纳,
    可是会被别的端甩掉
  • resend: 是或不是是重发的新闻
  • time: 时间戳

协助进行完成

SDK 在同步到位以后会公告开垦者,
开采者可以在那回调之后再开首化自身的分界面, 以至开展其余操作,
同步的数码包罗上边章节中的

  • 黑名单, 对应回调 onblacklist,
    请参考顾客关系托管其间的初叶化参数
  • 静音列表, 对应回调 onmutelist,
    请参考客户关系托管中间的伊始化参数
  • 知音, 对应回调 onfriends,
    请参考知音关系托管个中的初始化参数
  • 本人的片子, 对应回调 onmyinfo,
    请参考客户名片托管当中的初叶化参数
  • 知音的名片, 对应回调 onusers,
    请参考客户著名影片托管在那之中的最早化参数
  • 群, 对应回调 onteams,
    请参考群组里头的伊始化参数
  • 对话, 对应回调 onsessions,
    请参考会话当中的初步化参数
  • 骑行音信, 对应回调 onroamingmsgs,
    请参考消息里面包车型地铁初叶化参数
  • 离线音讯, 对应回调 onofflinemsgs,
    请参考消息其间的起始化参数
  • 离线系统通报, 对应回调 onofflinesysmsgs,
    请参考系统通报中间的早先化参数
  • 离线自定义系统通报, 对应回调 onofflinecustomsysmsgs,
    请参考系统通报此中的初叶化参数

演示代码

  • 这里的参数并不是具备的起始化参数, 请查阅初始化
    SDK,
    以致此外章节的最早化参数
  • 初始化SDK
  • 多端登陆伊始化参数
  • 客户关系起头化参数
  • 知音关系领头化参数
  • 顾客名片初步化参数
  • 群组早先化参数
  • 会话开始化参数
  • 新闻初叶化参数
  • 系统通报初阶化参数
  • 一同完结
  • 总体的带头化代码

var nim = NIM.getInstance({
onsyncdone: onSyncDone,
});
function onSyncDone() {
console.log('同步完成');
}

标志消息为已选拔

  • 先解释一下新闻发送和吸收接纳的流水生产线, A 发音讯给 B, 实际的流程是:
  • A 将音讯发送给服务器, 假使 B 在线, 服务器会将消息推给 B; 假若 B
    不在线, 服务器会在 B 上线的时候将此音信作为离线新闻推给 B
  • B 在收受在线音讯和离线新闻之后, 需求报告服务器收到了那些新闻, 这样 B
    下一次报届期服务器就不会重复推那几个音讯
  • 比如 B 未有告知服务器收到了那一个音信, 那么 B 下一次登陆时,
    服务器会再一次将这几个新闻推给 B
  • 暗中认可情形下, SDK
    在采用新闻(蕴涵在线新闻和离线音信)之后就将新闻标记为已选用,
    那样后一次登陆时就不会再接到这么些音讯, 平时情况下开采者没有必要关心此接口
  • 在支撑数据库时,
    SDK 会将音信存款和储蓄于数据库中,
    假若开辟者开掘会话的未读数大于收到的离线新闻数,
    那么须要从当地拉取未读取的新闻.
  • 在不支撑数据库时,
    借使开荒者想调整标记音信为已吸收接纳的机缘,
    那么可以设置早先化参数autoMarkReadfalse,
    那样SDK就不会活动标志音信为已采用,
    当时急需开辟者在适度的时机调用此接口来标志新闻为已吸收接纳,
    不然后一次登陆后照旧会收到未标志为已摄取的新闻.

以身作则代码

var nim = NIM.getInstance({
autoMarkRead: false
});
nim.markMsgRead(someMsg);
// or
nim.markMsgRead([someMsg]);

出殡地理地方新闻

  • 地理地方新闻是消息的一种,
    geo参数请参见地理地点对象

var msg = nim.sendGeo({
scene: 'p2p',
to: 'account',
geo: {
lng: '116.3833',
lat: '39.9167',
title: 'Beijing'
},
done: sendMsgDone
});
console.log('正在发送p2p geo消息, id=' + msg.idClient);
pushMsg(msg);

出殡自定义音信

  • 自定义音讯是消息的一种
  • 在搜狐云信开放的web-demo源码中,type-1为[石头剪刀布],type-2为[阅后即焚],type-3为[贴图表情],type-4为[白板教学]
  • 上面包车型地铁代码用自定义音信达成了石头剪刀布游戏

var value = Math.ceil(Math.random()*3);
var content = {
type: 1,
data: {
value: value
}
};
var msg = nim.sendCustomMsg({
scene: 'p2p',
to: 'account',
content: JSON.stringify(content),
done: sendMsgDone
});
console.log('正在发送p2p自定义消息, id=' + msg.idClient);
pushMsg(msg);

是还是不是须要群新闻文告

  • 此接口用于查询是不是要求群音讯布告
  • 成功时会附上一个 map, key 是群 ID, value 是八个布尔值,
    表示该群是或不是需求群消息公告
  • 调用接口校正自身的群属性来关闭/开启有些群的音讯提示

nim.notifyForNewTeamMsg({
teamIds: ['123'],
done: notifyForNewTeamMsgDone
})
function notifyForNewTeamMsgDone(error, map) {
console.log(error);
console.log(map);
console.log('查询是否需要群消息通知' + (!error?'成功':'失败'));
}

数据库包容性

在支撑数据库的浏览器上 SDK 会将数据缓存到数据库中, 后续同步都以增量更新,
加速开始化速度

会话开端化参数

  • 此处的参数并非有着的伊始化参数, 请查阅初始化
    SDK,
    以致任何章节的早先化参数
  • 初始化SDK
  • 多端登入开首化参数
  • 客商关系最初化参数
  • 知音关系开首化参数
  • 客商名片初阶化参数
  • 群组伊始化参数
  • 会话开始化参数
  • 信息带头化参数
  • 系统通报开头化参数
  • 一同到位
  • 完全的开始化代码

演示代码

var nim = NIM.getInstance({
onsessions: onSessions,
onupdatesession: onUpdateSession
});
function onSessions(sessions) {
console.log('收到会话列表', sessions);
data.sessions = nim.mergeSessions(data.sessions, sessions);
updateSessionsUI();
}
function onUpdateSession(session) {
console.log('会话更新了', session);
data.sessions = nim.mergeSessions(data.sessions, session);
updateSessionsUI();
}
function updateSessionsUI() {
// 刷新界面
}

参数解释

  • syncSessionUnread, 是不是同步会话的未读数, 暗中认可不联合
  • 一经接受同步
  • 那便是说在二个端读过的对话在此外端也会被标识为已读
  • 在调用设置当前对话的时候
    SDK 会自动同步二回未读数, 从此如果选拔当前对话的音讯,
    需求手动调用重置会话未读数来协同未读数
  • onsessions, 同步近年来对话列表回调, 会传入会话列表, 依期间正序排列,
    即近些日子聊过天的放在列表的末尾面
  • 此回调是增量回调,
    能够调用nim.mergeSessions来统一数据
  • onupdatesession, 更新会话的回调,
    会传入对话对象,
    以下情状会吸收接纳此回调
  • 收下音讯
  • 发送新闻
  • 安装当前对话
  • 重置会话未读数

安装闲聊室不时禁言

  • 当有人被安装谈心室一时禁言时,全体闲谈室成员会收到类型为'addTempMute' or 'removeTempMute'的闲聊室通告音讯。
  • account: 帐号
  • duration: 禁言时间长度,单位秒,传0表示免除禁言
  • needNotify: 是还是不是要求发出对应的照望音讯
  • custom: 对应的通报新闻的增加字段

chatroom.updateChatroomMemberTempMute({
account: 'account',
duration: 60,
needNotify: true,
custom: 'biu',
done: updateChatroomMemberTempMuteDone
})
function updateChatroomMemberTempMuteDone(error, obj) {
console.log('设置聊天室临时禁言' + (!error?'成功':'失败'), error, obj);
}

对话对象

对话对象有以下字段:

  • id: 会话ID
  • scene:
    场景
  • to: 聊天对象, 账号或群ID
  • updateTime: 会话更新的时刻
  • unread: 未读数
  • lastMsg: 此会话的末梢一条新闻
  • msgReceiptTime: 音讯已读回执时间戳, 纵然有此字段,
    表明那时间戳在此以前的富有音讯对方均已读
  • 当前仅对'p2p'会话起功能
  • 此字段不必然有, 独有对方发送过已读回执之后才会有
  • 调用接口发送消息已读回执来发送音信已读回执
  • 调用接口询问消息是不是被对方读过了来查询新闻是不是被对方读过了
  • localCustom: 当地自定义扩充字段
  • 在支撑数据库时能够调用立异本地会话来更新此字段,
    此字段只会被更新到地点数据库, 不会被更新到服务器上

收获客户名片

  • 请参考客商名片更新机遇
  • 能够流传参数sync=true来免强从服务器获取最新的多寡

nim.getUser({
account: 'account',
done: getUserDone
});
function getUserDone(error, user) {
console.log(error);
console.log(user);
console.log('获取用户名片' + (!error?'成功':'失败'));
if (!error) {
onUsers(user);
}
}

改良别人的群外号

  • 具有别的在线的群成员会收到会收到初始化SDK时传入的onupdateteammember回调

nim.updateNickInTeam({
teamId: 123,
account: 'a2',
nickInTeam: '群昵称',
done: updateNickInTeamDone
});
function updateNickInTeamDone(error, obj) {
console.log(error);
console.log(obj);
console.log('修改自己的群属性' + (!error?'成功':'失败'));
}

客户名片更新机会

  • 客商著名影片除自个儿之外,不保障其余客户名片实时更新,其余客户名片更新机会为
  • 采纳此客户发来的音信
  • 历次同步会同步好朋友对应的客商著名影片
  • 如若想手动刷新客户名片,请参照他事他说加以考察获得客户名片和赢得客户名片数组

选取群新闻

参照上文的吸取新闻

消息

群消息改善权限

群新闻纠正权限有以下二种

  • 'manager' (唯有管理员/群主可以更正State of Qatar
  • 'all' (全体人能够改善卡塔尔(قطر‎

出殡谈天室自定义音讯

var value = Math.ceil(Math.random()*3);
var content = {
type: 1,
data: {
value: value
}
};
var msg = chatroom.sendCustomMsg({
content: JSON.stringify(content),
done: sendChatroomMsgDone
});
console.log('正在发送聊天室自定义消息, id=' + msg.idClient);

获取闲聊室消息

chatroom.getChatroom({
done: getChatroomDone
});
function getChatroomDone(error, obj) {
console.log('获取聊天室信息' + (!error?'成功':'失败'), error, obj);
}

删除有些会话的本土音信

  • 如果不支撑数据库,
    算成功

nim.deleteLocalMsgsBySession({
scene: 'p2p',
to: 'account',
done: deleteLocalMsgsBySessionDone
});
function deleteLocalMsgsBySession(error, obj) {
console.log(error);
console.log(obj);
console.log('删除会话本地消息' + (!error?'成功':'失败'));
}

聊天室成员

地理地方对象

当出殡地理地点新闻或选用地理地方音信时,
消息对象的geo字段代表地理地点对象,
包括以下属性:

  • lng: 经度
  • lat: 纬度
  • title: 地址描述

浮动准则

SDK 会根据旅游新闻和离线音信来生成领头会话列表, 在收到音信和发送新闻随后
SDK 会更新会话列表

多端在线状态同步

多端在线状态同步基于事件的颁发与订阅模型,参见事件公布及订阅

福衢寿网络麻豆式

  • 首先定义对应账号的记名事件,登陆事件的type为1,示例代码如下:

this.nim.subscribeEvent({
// type 1 为登录事件,用于同步多端登录状态
type: 1,
accounts: ['cs1', 'cs2'],
subscribeTime: 3600 * 24 * 30,
// 同步订阅事件,保证每次登录时会收到推送消息
sync: true,
done: function onSubscribeEvent (err, res) {
if (err) {
console.error('订阅好友事件失败', err)
} else {
console.info('订阅好友事件', res)
}
}
});
  • 历次对方出以往线状态更换时,会收取相应的改变事件推送,可参见服务器推送的订阅事件(初阶化卡塔尔国,示例代码如下:

function onPushEvents (param) {
if (param.msgEvents) {
param.msgEvents.forEach(data => {
console.log(updateMultiPortStatus(data))
})
}
}
function updateMultiPortStatus (data) {
if (data.account) {
var account = data.account
var multiPortStatus = ''

function getMultiPortStatus (customType, custom) {
// 服务器下推多端事件标记的特定序号对应值
var netState = {
0: '',
1: 'Wifi',
2: 'WWAN',
3: '2G',
4: '3G',
5: '4G'
}
var onlineState = {
0: '在线',
1: '忙碌',
2: '离开'
}

var custom = custom || {}
if (customType !== 0) {
// 有serverConfig.online属性,已被赋值端名称
custom = custom[customType]
} else if (custom[4]) {
custom = custom[4]
multiPortStatus = '电脑'
} else if (custom[2]) {
custom = custom[2]
multiPortStatus = 'iOS'
} else if (custom[1]) {
custom = custom[1]
multiPortStatus = 'Android'
} else if (custom[16]) {
custom = custom[16]
multiPortStatus = 'Web'
} else if (custom[64]) {
custom = custom[64]
multiPortStatus = 'Mac'
}
if (custom) {
custom = JSON.parse(custom)
if (typeof custom['net_state'] === 'number') {
var tempNetState = netState[custom['net_state']]
if (tempNetState) {
multiPortStatus += ('[' + tempNetState + ']')
}
}
if (typeof custom['online_state'] === 'number') {
multiPortStatus += onlineState[custom['online_state']]
} else {
multiPortStatus += '在线'
}
}
return multiPortStatus
}

// demo自定义多端登录同步事件
if (+data.type === 1) {
if (+data.value === 1 || +data.value === 2 || +data.value === 3 || +data.value === 10001) {
var serverConfig = JSON.parse(data.serverConfig)
var customType = 0
multiPortStatus = ''
// 优先判断serverConfig字段
if (serverConfig.online) {
if (serverConfig.online.indexOf(4) >= 0) {
multiPortStatus = '电脑'
customType = 4
} else if (serverConfig.online.indexOf(2) >= 0) {
multiPortStatus = 'iOS'
customType = 2
} else if (serverConfig.online.indexOf(1) >= 0) {
multiPortStatus = 'Android'
customType = 1
} else if (serverConfig.online.indexOf(16) >= 0) {
multiPortStatus = 'Web'
customType = 16
} else if (serverConfig.online.indexOf(64) >= 0) {
multiPortStatus = 'Mac'
customType = 64
}
}
if (data.custom && (Object.keys(data.custom).length > 0)) {
var portStatus = getMultiPortStatus(customType, data.custom)
// 如果serverConfig里有属性而custom里没有对应属性值
if ((multiPortStatus !== '') && (portStatus === '')) {
multiPortStatus += '在线'
} else {
multiPortStatus += portStatus
}
} else if (customType !== 0) {
multiPortStatus += '在线'
} else {
multiPortStatus = '离线'
}
}
}
return multiPortStatus
}
return '离线'
}

地面历史记录

  • 在扶植数据库的时候,
    SDK 会将消息存款和储蓄于数据库中
  • 当开辟者开采会话的未读数大于音讯数量时,
    表明有未读音信存款和储蓄于数据Curry面,
    供给调用取得本地历史记录来赢得越多音信
  • 任何接口
  • 得到包涵关键词的本土历史记录
  • [赢得 idClient 对应的地点新闻](#获得 idClient 对应的本地音讯State of Qatar
  • [得到 idClients 对应的地点新闻](#收获 idClients 对应的地头音讯卡塔尔国
  • 立异本地消息
  • 剔除本地音信
  • 除去有些会话的本地音讯
  • 剔除全部地点音讯

智能手机器人新闻模板

  • 参见机器人音讯人体模型板表达

去除本地消息

  • 如果不援助数据库,
    算成功
  • 设若对应的新闻不设有, 算成功

nim.deleteLocalMsg({
msg: msg,
done: deleteLocalMsgDone
});
function deleteLocalMsgDone(error, obj) {
console.log('删除本地消息' + (!error?'成功':'失败'), error, obj);
}

多端登入

云信援救多端同一时间登陆, 即客商能够并且在移动端和网页端登陆同一账号

初始化参数

  • 此地的参数并不是有着的初叶化参数, 请查阅初始化
    SDK,
    以至别的章节的初步化参数
  • 初始化SDK
  • 多端登陆初始化参数
  • 客户关系先导化参数
  • 知音关系伊始化参数
  • 客商名片开首化参数
  • 群组初叶化参数
  • 会话初步化参数
  • 音信起首化参数
  • 系统通报初阶化参数
  • 同步到位
  • 完整的开头化代码

示范代码

var nim = NIM.getInstance({
onblacklist: onBlacklist,
onsyncmarkinblacklist: onMarkInBlacklist,
onmutelist: onMutelist,
onsyncmarkinmutelist: onMarkInMutelist
});
function onBlacklist(blacklist) {
console.log('收到黑名单', blacklist);
data.blacklist = nim.mergeRelations(data.blacklist, blacklist);
data.blacklist = nim.cutRelations(data.blacklist, blacklist.invalid);
refreshBlacklistUI();
}
function onMarkInBlacklist(obj) {
console.log(obj);
console.log(obj.account + '被你' + (obj.isAdd ? '加入' : '移除') + '黑名单');
if (obj.isAdd) {
addToBlacklist(obj);
} else {
removeFromBlacklist(obj);
}
}
function addToBlacklist(obj) {
data.blacklist = nim.mergeRelations(data.blacklist, obj.record);
refreshBlacklistUI();
}
function removeFromBlacklist(obj) {
data.blacklist = nim.cutRelations(data.blacklist, obj.record);
refreshBlacklistUI();
}
function refreshBlacklistUI() {
// 刷新界面
}
function onMutelist(mutelist) {
console.log('收到静音列表', mutelist);
data.mutelist = nim.mergeRelations(data.mutelist, mutelist);
data.mutelist = nim.cutRelations(data.mutelist, mutelist.invalid);
refreshMutelistUI();
}
function onMarkInMutelist(obj) {
console.log(obj);
console.log(obj.account + '被你' + (obj.isAdd ? '加入' : '移除') + '静音列表');
if (obj.isAdd) {
addToMutelist(obj);
} else {
removeFromMutelist(obj);
}
}
function addToMutelist(obj) {
data.mutelist = nim.mergeRelations(data.mutelist, obj.record);
refreshMutelistUI();
}
function removeFromMutelist(obj) {
data.mutelist = nim.cutRelations(data.mutelist, obj.record);
refreshMutelistUI();
}
function refreshMutelistUI() {
// 刷新界面
}

参数解释

  • onblacklist: 同步黑名单的回调, 会传入黑名单列表blacklist
  • blacklist的属性invalid含有被删去的黑名单列表
  • 此回调是增量回调,
    能够调用nim.mergeRelations和nim.cutRelations来统一数据
  • onsyncmarkinblacklist:
    当前报到顾客在其余端投入黑名单/从黑名单移除后的回调,
    会传入二个参数, 包蕴七个字段
  • account: 要加盟黑名单/从黑名单移除的账号
  • isAdd: true表示插足黑名单, false意味着从黑名单移除
  • reocrd, 拼装好的靶子
  • onmutelist: 同步静音列表的回调, 会传入静音列表mutelist
  • mutelist的属性invalid包含被剔除的静音列表
  • 此回调是增量回调,
    能够调用nim.mergeRelations和nim.cutRelations来合并数据
  • onsyncmarkinmutelist:
    当前报到顾客在其他端加盟静音列表/从静音列表移除后的回调,
    会传入二个参数, 包罗多少个字段
  • account: 要参预静音列表/从静音列表移除的账号
  • isAdd: true表示参与静音列表, false意味着从静音列表移除
  • reocrd, 拼装好的目的

赢得闲谈室成员列表

  • guest: true意味着收获游客, false代表收获非旅客成员
  • 游人列表遵照乘客踏向闲谈室的岁月倒序排列
  • 非旅客(即定位成员)列表依据成为固定成员的日子倒序排列
  • 当设置guest=false来获取非乘客成员时, 暗许会获取具有的原则性成员,
    包罗不在线的, 能够安装onlyOnline=true来只获得在线的定势成员
  • time 分页用, 查找该时间戳以前的积极分子
  • 暗中认可 0 代表当前服务器时间
  • 获得旅客时, 此字段填上次得到的末梢三个观景客的enterTime
  • 获取非游客时, 此字段填上次拿走的最后几个非游客的updateTime
  • limit 分页用, 默认 100

chatroom.getChatroomMembers({
guest: false,
limit: 100,
done: getChatroomMembersDone
});
function getChatroomMembersDone(error, obj) {
console.log('获取聊天室成员' + (!error?'成功':'失败'), error, obj.members);
}

更新 IM 配置

SDK 设计为单例情势, 要是必要立异当前 IM 的配备, 那么能够调用此接口,
参数列表和格式跟NIM.getInstance保持一致,
以更新 token 为例

// 断开 IM
nim.disconnect();
// 更新 token
nim.setOptions({
token: 'newToken'
});
// 重新连接
nim.connect();

去除本地系统通报

  • 删除 idServer 对应的本土系统通报
  • 如果不支撑数据库,
    算成功
  • 假诺对应的体系通报不设有, 算成功

nim.deleteLocalSysMsg({
idServer: '1234',
done: deleteLocalSysMsgDone
});
function deleteLocalSysMsgDone(error, obj) {
console.log(error);
console.log(obj);
console.log('删除本地系统通知' + (!error?'成功':'失败'));
}

图表对象

当发送图片音讯或选取图片消息时,
消息对象的file字段代表图片对象,
包括以下属性:

  • name: 名字
  • size: 大小, 单位byte
  • md5: md5
  • url: url
  • ext: 扩展名
  • w: 宽, 单位px
  • h: 高, 单位px

未读数

SDK 会自动管理会话的未读数, 会话对象的unread的值为对话的未读数,
假诺开垦者发掘会话的未读数大于收到的离线新闻数,
那么供给从本地拉取未读取的音讯

会话未读数的初阶化在不一样的布署情况下,会有差别的推测法则:

  • 拉开数据库: db = true
  • 开启同步会话未读数: syncSessionUnread = true
  • 此刻会话未读数通过服务器下推的Ack或地点存款和储蓄的Ack时间戳,与本地数据库中对应会话的地头历史记录做比较,晚于该Ack且不是温馨发的消息的数量,为未读数
  • 参见会话开头化参数
  • 未展开会话未读数: syncSessionUnread = false
  • 那会儿会话未读数通过从地点数据库上次所记录的未读数中收获,假若有离线音信且音信属性标识为isUnreadable,则会在原来的未读数上扩大计数
  • 不开启数据库: db = false
  • 不开启自动标识音讯已读: auto马克Read = false
  • 那会儿服务器下推的兼具离线新闻算未读,漫游音讯算已读
  • 拉开自动标识信息已读: autoMarkRead = true
  • 那个时候历次接到离线音信,均会报告服务器该音讯已读,下贰遍登入,服务器就不会下推离线音信,而将这么些音讯标志为出行音信。未有离线新闻,未读数在表现上均为0
  • 参见标志音讯为已选拔

系统通报起初化参数

  • 此处的参数实际不是兼具的开首化参数, 请查阅初始化
    SDK,
    以致别的章节的开首化参数
  • 初始化SDK
  • 多端登入初叶化参数
  • 客户关系开端化参数
  • 好朋友关系起始化参数
  • 客户名片伊始化参数
  • 群组先导化参数
  • 会话初始化参数
  • 消息发轫化参数
  • 系统通报开始化参数
  • 联手完毕
  • 全部的开端化代码

身教重于言教代码

var nim = NIM.getInstance({
onofflinesysmsgs: onOfflineSysMsgs,
onsysmsg: onSysMsg,
onupdatesysmsg: onUpdateSysMsg,
onsysmsgunread: onSysMsgUnread,
onupdatesysmsgunread: onUpdateSysMsgUnread,
onofflinecustomsysmsgs: onOfflineCustomSysMsgs,
oncustomsysmsg: onCustomSysMsg
});
function onOfflineSysMsgs(sysMsgs) {
console.log('收到离线系统通知', sysMsgs);
pushSysMsgs(sysMsgs);
}
function onSysMsg(sysMsg) {
console.log('收到系统通知', sysMsg)
pushSysMsgs(sysMsg);
}
function onUpdateSysMsg(sysMsg) {
pushSysMsgs(sysMsg);
}
function pushSysMsgs(sysMsgs) {
data.sysMsgs = nim.mergeSysMsgs(data.sysMsgs, sysMsgs);
refreshSysMsgsUI();
}
function onSysMsgUnread(obj) {
console.log('收到系统通知未读数', obj);
data.sysMsgUnread = obj;
refreshSysMsgsUI();
}
function onUpdateSysMsgUnread(obj) {
console.log('系统通知未读数更新了', obj);
data.sysMsgUnread = obj;
refreshSysMsgsUI();
}
function refreshSysMsgsUI() {
// 刷新界面
}
function onOfflineCustomSysMsgs(sysMsgs) {
console.log('收到离线自定义系统通知', sysMsgs);
}
function onCustomSysMsg(sysMsg) {
console.log('收到自定义系统通知', sysMsg);
}

参数解释

  • onofflinesysmsgs,
    同步离线系统通报的回调,
    会传入系统通报数组
  • 在支撑数据库时同一时间启用了多
    tab 同期登入, 那么只要八个 tab 页同有时候断线重连之后, 只会有一个 tab
    页肩负储存离线系统通报, 即只会有一个 tab 页会收到
    onofflinesysmsgs回调, 其它 tab
    页在一道到位日后,
    必要调用获得本地系统通报来从地面缓存中拉取系统通报
  • onsysmsg,
    收到系统通报的回调,
    会传入系统通报
  • 收到系统通报后供给调用标志系统通报为已读状态来将系统通报标志为已读状态
  • onupdatesysmsg, 更新系统通报后的回调, 会传入{@link
    SystemMessage|系统通报}
  • 以下情状会吸收接纳此回调
  • 经过亲密的朋友申请
  • 闭门羹老铁申请
  • 选取入群诚邀
  • 闭门羹入群诚邀
  • 经过入群申请
  • 闭门羹入群申请
  • 那个操作的呼吁方会收到此回调, 选拔被更新的连串通报,
    依据操作的档案的次序系统通报会被更新为下边二种情形
  • 'passed': 已通过
  • 'rejected': 已拒绝
  • onsysmsgunread: 收到系统通报未读数的回调
  • SDK 会管理内建系统通报的未读数, 此回调接受的对象满含以下字段
  • friend: 全体跟亲密的朋友相关的种类通报的未读数
  • addFriend: 直接加为亲密的朋友的未读数
  • applyFriend: 申请加为好朋友的未读数
  • passFriendApply: 通过好朋友申请的未读数
  • rejectFriendApply: 否决基友申请的未读数
  • deleteFriend: 删除亲密的朋友的未读数
  • team: 全体跟群相关的种类通报的未读数
  • teamInvite: 入群邀约的未读数
  • rejectTeamInvite: 选择入群诚邀的未读数
  • applyTeam: 入群申请的未读数
  • rejectTeamApply: 拒却入群申请的未读数
  • deleteMsg: 撤回音信的未读数
  • onupdatesysmsgunread: 更新系统通报未读数的回调
  • onofflinecustomsysmsgs,
    同步离线自定义系统通报的回调,
    会传入系统通报数组
  • oncustomsysmsg,
    收到自定义系统通报的回调,
    会传入系统通报

系统通报分为三种

  • 内建种类通报
  • 最近怀有的内建体系通报都以与高等群相关的打招呼,
    有个别群操作后相关的群成员会收到相应的类别通报。
  • 内建体系通报与群通告新闻的分别是系统通报是发给单人的打招呼,
    群通告新闻是发放具备群成员的新闻。
  • 自定义系统通报

interlace图片

  • 只扶助通过预览文件或出殡文书新闻得到的图纸
    url, 也许经过其他图片操作后获得的图形 url
  • 在网络情形相当糟糕时, interlace 后的图形会以从模糊到清晰的办法展现给顾客

var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=';
var interlaceUrl = nim.interlaceImage({
url: url,
done: interlaceImageDone
});
function interlaceImageDone(error, obj) {
console.log(error);
console.log(obj);
console.log('interlace 图片' + (!error?'成功':'失败'));
}

初始化 SDK

请查阅开垦筹划来下载并引进SDK 文件

转移缩略图

  • 只帮忙通过预览文件或出殡文书消息获得的图纸
    url, 只怕通过其余图片操作后取得的图形 url
  • width/height 约束了缩略图的尺寸
  • width/height 必需超出等于 0, 不能够而且为 0, 必需低于 4096
  • 现在不是过去能比得上情势下生成的缩略图是分化样的, 方今支撑以下三种形式
  • 'cover': 原图形等比缩略, 缩略图一边等于央求的尺寸,
    另一面大于诉求的尺码, 即缩略图正好能覆盖住尺寸为 width*height
    的矩形
  • 'contain': 原图形等比缩略, 缩略图一边等于诉求的尺寸,
    另一方面大于诉求的尺码, 即尺寸为 width*height
    的矩形刚巧能隐瞒住缩略图
  • 'crop': 先等比缩略原图片, 使得一边等于必要的尺码,
    其他方面大于诉求的尺寸, 然后对超越乞求尺寸的那条边举办裁剪,
    使得最终的图片大小赶巧等于央浼的尺寸
  • 一旦缩略图尺寸当先图片尺寸,暗中同意景况下图片不会被加大,能够流传参数enlarge=true来松开图片
  • 'crop' 格局下得以流传参数 axis.x 或 axis.y
    来决定最终一步裁剪之处
  • x/y 必得为整数, 取值范围为 0-10, 此方法内部选择 Math.round 来格式化
    x/y
  • x 为 0 时表示裁取最左端, x 为 10 时表示裁取最右端
  • y 为 0 时表示裁取顶上部分, y 为 10 时表示裁取最下端
  • x/y 私下认可值均为 5, 即裁取正中间

var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=';
var thumbnailUrl = nim.thumbnailImage({
url: url,
mode: 'cover',
width: 80,
height: 100,
done: thumbnailImageDone
});
function thumbnailImageDone(error, obj) {
console.log(error);
console.log(obj);
console.log('生成缩略图' + (!error?'成功':'失败'));
}

顾客名片对象

顾客名片对象有以下字段:

  • account: 账号
  • nick: 昵称
  • avatar: 头像
  • sign: 签名
  • gender:
    性别
  • email: 邮箱
  • birth: 生日
  • tel: 电话号码
  • custom: 扩大字段
  • 推荐介绍使用JSON格式创设, 非JSON格式的话, Web端会不奇怪选用,
    可是会被别的端丢掉
  • createTime: 创制时间
  • updateTime: 更新时间

询问音讯是不是被对方读过了

  • 眼下只扶植'p2p'会话

var isRemoteRead = nim.isMsgRemoteRead(msg);

不行使数据库

只要开拓者不想接纳数据库,
那么能够安装伊始化参数dbfalse来剥夺数据库

var nim = NIM.getInstance({
db: false
});

剔除全部地点系统通报

  • 如果不支撑数据库,
    算成功
  • 此方式相同的时候会清空系统通报未读数, 开垦者会收到onupdatesysmsgunread

nim.deleteAllLocalSysMsgs({
done: deleteAllLocalSysMsgsDone
});
function deleteAllLocalSysMsgsDone(error, obj) {
console.log(error);
console.log(obj);
console.log('删除所有本地系统通知' + (!error?'成功':'失败'));
}

发送聊天室音讯

席卷以下接口

  • 出殡闲聊室文本音信
  • 预览谈天室文件
  • 出殡闲谈室文件音信
  • 出殡谈心室地理地点消息
  • 出殡闲谈室提示音信
  • 出殡闲谈室自定义讯息
  • 出殡闲聊室新闻的配置选项

预览图片通用方法

  • 只支持通过预览文件或发送文书音讯取得的图片
    url, 只怕经过任何图片操作后得到的图形 url
    将要以下常用的图样管理措施统一到叁个接口中

  • 预览去除图片元音讯

  • 预览图片品质

  • 预览interlace图片

  • 预览旋转图片

  • 预览生成缩略图

  • 该接口同一时候会基于私有化计划原则,在connect的config中分辨downloadUrl是不是存在而打开对应的链接替换

  • 借使不设有,则链接的hostname和protocol保持不变

  • 若是存在,则链接的hostname和protocol会替换来downloadUrl的

  • 例如:

  • downloadUrl =
    https://nos.netease.im

  • 原始链接为
    http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=

  • 轮流链接为
    https://nos.netease.im/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=

  • 代码示例

var url = 'http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ0MzE0NTgyNDI0M184YjFkYTMwMS02NjcxLTRiYjktYTUwZC04ZTVlZjZlNzZjMzA=';
var newImageUrl = nim.viewImageSync({
url: url, // 必填
strip: true, // 去除图片元信息 true or false 可选填
quality: 80, // 图片质量 0 - 100 可选填
interlace: true, // 渐变清晰, 可选填
rotate: 90, // 旋转角度,顺时针,可选填
thumbnail: { // 生成缩略图, 可选填
width: 80,
height: 20,
mode: cover
}
});
  • newImageUrl形如:
    http://nim.nos.netease.com/MTAxMTAwMg==/bmltYV8xNDc5OTNfMTQ2OTUyMDc1NzAyNl8wMTA0NmIyMi0yNTQzLTQ2OTYtOWE0OC0zYjk0YjIyMWQyMjA=?imageView&stripmeta=1&quality=80&interlace=1&rotate=90&thumbnail=80z20

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图