腾讯云im文档,腾讯文档app下载安卓版

腾讯云IM简介和使用流程

一,准备工作

首先,访问腾讯云官网,点击登录或注册账号。对于无账号用户,请注册后关联,已拥有账号的用户直接登录并关联。

然后,选购腾讯云IM服务。

二,腾讯云IM简介

即时通信(IM)是一种能够即时发送和接收互联网消息的服务,自1998年问世以来,功能日益丰富,集成了电子邮件、博客、音乐、电视、游戏和搜索等多种功能。它已经发展成为集交流、资讯、娱乐、搜索、电子商务、办公协作和企业客户服务为一体的综合信息平台。重要即时通信提供商如微软、腾讯、AOL、Yahoo等,提供了手机接入互联网即时通信的业务,用户可通过手机与安装相应客户端软件的设备进行消息交互。

三,腾讯云IM使用流程

直接访问即时通信IM的Demo页面,进入IM控制台。首次访问时,会指引用户下载Demo压缩包,解压后使用微信开发者工具运行,仅需输入SDKAppID和密钥。在控制台获取相关参数,实现聊天功能。

四,使用腾讯云即时通信IM SDK

集成SDK至项目中,推荐通过npm方式。使用npm将IM SDK集成到Web、小程序或uni-app项目。借助tim-upload-plugin实现更快、更安全的富文本消息资源上传功能。利用tim-profanity-filter-plugin在客户端本地检测文本内容,支持敏感词拦截或替换,保障产品体验和业务安全。

通过npm安装依赖,对于Web项目,说明并引入模块。对于小程序或uni-app项目,同样说明引入模块并初始化。

利用script标签集成SDK,并在项目脚本中进行初始化操作。

腾讯云IM使用总结

腾讯帝国最重要的产品QQ和微信都是IM为基础,相信腾讯云IM也能有很好的体验,我们在项目上准备使用腾讯云通信。

我们项目的基本需求是App中使用IM,实现基本的聊天功能,有一些我们的值班人员通过IM给App的用户提供实时的业务咨询,同时也提供用户和用户之间的聊天。

由于项目App第一期时间紧,先考虑基于H5或小程序,二期再考虑原生实现Android和iOS版本, AppWorker会封装这个组件。

基本流程就是App端或小程序有自己的登陆系统,有二种基本角色:用户(问题咨询者)和服务人员(问题回答者)。用户登陆找到服务人员,然后用do_WebView组件加载聊天网页,实现聊天功能。后期还要逐渐增加其它功能:

这个步骤是所有操作的基础,我们这里选择的是独立模式:用户帐号信息由开发者保存,用户身份验证(比如注册与验密)也由开发者负责。

这个登陆指对腾讯云IM的login,因为我们用的是独立模式,则这个动作的前提是这个用户已经成功登陆了业务系统。

这里有二种方式登陆:

这里指客户端发送和接受消息。 WebSDK是基于H5和小程序的IM的共有js库,它们的差别就是用H5绘制聊天界面还是用小程序绘制,真正的通讯机制完全一样。

不过和Android,iOS的原生比较,WebSDK不支持很多功能,比如不支持短视频,不支持语音发送(支持解析),不支持地理位置(支持解析)。

腾讯云提供了后端云服务REST API来实现很多功能,很多情况需要我们的业务服务端调用这些API来处理IM的一些操作。

这里要注意的一个细节是所有的后端REST API都是以管理员身份来获取UserSig和其它操作,在我们的前期准备里管理员是myadmin。

在应用配置里如果配置了我们的业务服务回调URL,在IM聊天中就会自动触发我们的业务服务,通过这个回调和腾讯云后端服务,我们能完成我们的后期几个需求,以下是几个基本流程图:

uni-app 使用腾讯云im开发app聊天室

组件地址:

哪找教程引入就行,开发什么端看什么端文档

npm install tim-wx-sdk@2.15.0--save

npm install cos-wx-sdk-v5@0.7.11--save

----------------------------------------------------------

import TIM from'tim-wx-sdk';

import COS from"cos-wx-sdk-v5";

import logger from'./utils/logger';// app.js

import{ genTestUserSig} from'./debug/GenerateTestUserSig.js'

在app.vue文件下onLaunch周期里面:

/// userInfo为判断用户是否登录

if( userInfo!=''|| userInfo!= undefined){

if( uni.getStorageSync('zuserInfo').role== 1|| uni.getStorageSync('zuserInfo').role== 2){

//连接im

//如果您已经接入 tim,请将 uni.tim修改为 uni.$TUIKit。

uni.$TUIKit= TIM.create({

  SDKAppID:'  '  //填写你申请的AppID

});

uni.$TUIKit.registerPlugin({

 'cos-wx-sdk': COS

});

uni.$resetLoginData= this.resetLoginData(userInfo)

uni.$TUIKitTIM= TIM;

uni.$TUIKitEvent= TIM.EVENT;

uni.$TUIKitVersion= TIM.VERSION;

uni.$TUIKitTypes= TIM.TYPES;//监听系统级事件

uni.$TUIKit.on(uni.$TUIKitEvent.SDK_NOT_READY, this.onSdkNotReady);

uni.$TUIKit.on(uni.$TUIKitEvent.KICKED_OUT, this.onKickedOut);

uni.$TUIKit.on(uni.$TUIKitEvent.ERROR, this.onTIMError);

uni.$TUIKit.on(uni.$TUIKitEvent.NET_STATE_CHANGE, this.onNetStateChange);

uni.$TUIKit.on(uni.$TUIKitEvent.SDK_RELOAD, this.onSDKReload);

uni.$TUIKit.on(uni.$TUIKitEvent.SDK_READY, this.onSDKReady);

}

}

// TODO:

  resetLoginData(info){

let _this= this

   this.globalData.expiresIn='';

   this.globalData.sessionID='';

   this.globalData.userInfoIm={

    userID: info.userId,

    userSig: info.txSig,

    token: info.token,

    phone: info.phone

  };

   this.globalData.userProfile= null;

uni.$TUIKit.login({userID: info.userId.toString(), userSig: info.txSig.toString()})

.then(function(imResponse){

 // console.log(imResponse.data);//登录成功

// _this.getUpdateMyProfile()

  if(imResponse.data.repeatLogin=== true){

  //标识帐号已登录,本次登录操作为重复登录。v2.5.1起支持

  // console.log(imResponse.data.errorInfo);

 }

})

.catch(function(imError){

  console.warn('login error:', imError);//登录失败的相关信息

});

 },

onTIMError(){},

  onNetStateChange(){},

  onSDKReload(){},

  onSDKReady(event){

let _this= this

_this.getUpdateMyProfile()

_this.getImUnread()

},

  onSdkNotReady(){

this.getImLogin()

},

  onKickedOut(){

   uni.showToast({

    title:'您被踢下线',

    icon:'error'

  });

let userinfo=''

uni.setStorageSync('zuserInfo', userinfo)

setTimeout(()=>{

uni.redirectTo({

  url:'/pages/login/login'

});

},2000)

  // uni.navigateTo({

  //  url:'./pages/TUI-Login/login'

  //});

 },

logoutTim(){

uni.$TUIKit.logout()

},

uni.navigateTo({

url:'/pages/TUI-Chat/chat?conversationID=C2C'+ this.info.user_id

});

getImUnread(){

uni.$TUIKit.getConversationList().then(res=>{

// console.log(res.data.conversationList)

for( let i of res.data.conversationList){

if( i.unreadCount!= 0){

uni.showTabBarRedDot({index:2})

return

}

}

}).catch(fail=>{

// console.log(fail)

});

},

阅读剩余
THE END