平台 | 版本 |
Electron | 13.1.5 及以上版本。 |
Node.js | v14.2.0 |
继承方式 | 适用场景 |
使用 DEMO | |
自实现 | 如果 Demo 不能满足您应用的功能界面需求,可以使用该方法。 |
git clone https://github.com/TencentCloud/tc-chat-demo-electron.git
// 项目根目录npm install// 渲染进程目录cd src/clientnpm install
// 项目根目录npm start
// mac打包npm run build:mac// windows打包npm run build:windows
src/app/main.js
,渲染进程目录为src/client
。如运行过程出现问题,可优先通过常见问题查找解决。npm install im_electron_sdk
TimMain
中传入您的sdkAppID
。// 主进程const TimMain = require('im_electron_sdk/dist/main')const sdkappid = 0;// 可以去腾讯云即时通信IM控制台申请const tim = new TimMain({sdkappid:sdkappid})
TIMInit
,完成 SDK 初始化。//渲染进程const TimRender = require('im_electron_sdk/dist/render')const timRender = new TimRender();// 初始化timRender.TIMInit()
timRender.TIMLogin
方法,登录一个测试用户。
当返回值 code
为0时,登录成功。const TimRender = require('im_electron_sdk/dist/render')const timRender = new TimRender();let {code} = await timRender.TIMLogin({userID:"userID",userSig:"userSig" // 参考userSig生成})
UserSig
签发方式是将UserSig
的计算代码集成到您的服务端,并提供面向 APP的接口。在需要 UserSig
时由您的 APP 向业务服务器发起请求获取动态 UserSig
。更多详情请参见 服务端生成 UserSig。code
返回 0 则为消息发送成功。
代码示例:const TimRender = require('im_electron_sdk/dist/render')const timRender = new TimRender();let param:MsgSendMessageParamsV2 = { // param of TIMMsgSendMessageconv_id: "conv_id",conv_type: 1,params: {message_elem_array: [{elem_type: 1,text_elem_content:'Hello Tencent!',}],message_sender: "senderID",},callback: (data) => {}}let {code} = await timRender.TIMMsgSendMessageV2(param);
let param:getConvList = {userData:userData,}let data:commonResult<convInfo[]> = await timRenderInstance.TIMConvGetConvList(param)
let param:MsgGetMsgListParams = {conv_id: conv_id,conv_type: conv_type,params: {msg_getmsglist_param_last_msg: msg,msg_getmsglist_param_count: 20,msg_getmsglist_param_is_remble: true,},user_data: user_data}let msgList:commonResult<Json_value_msg[]> = await timRenderInstance.TIMMsgGetMsgList(param);
let param : TIMRecvNewMsgCallbackParams = {callback: (...args)=>{},user_data: user_data}timRenderInstance.TIMAddRecvNewMsgCallback(param);
npm ERR! gyp ERR! stack TypeError: Cannot assign to read only property 'cflags' of object '#<Object>'
错误如何解决?gypgyp ERR!ERR
错误如何解决?npm install
出现错误 npm ERR! Fix the upstream dependency conflict, or retry
,如何解决?npm install --force
npm run start
出现错误 Error: error:0308010C:digital envelope routines::unsupported
,如何解决?npm run start
会出现白屏,如何解决?npm run start
会出现白屏,原因是渲染进程的代码还没有 build 完成,主进程打开的3000端口为空页面,当渲染进程代码 build 完成重新刷新窗口后即可解决问题。或者执行cd src/client && npm run dev:react
, npm run dev:electron
, 分开启动渲染进程和主进程。vue-cli-plugin-electron-builder
构建的项目如何使用 native modules
?vue-cli-plugin-electron-builder
构建的项目使用native modules
请参见 No native build was found for platform = xxx。webpack
构建的项目如何使用 native modules
?Dynamic Linking Error
?extraFiles:[{"from": "./node_modules/im_electron_sdk/lib/","to": "./Resources","filter": ["**/*"]}]
__dirname is not defined
?// 主进程内容正常写到主进程// main/index.ts (示例路径)const TimMain = require('im_electron_sdk/dist/main')const sdkappid = 0;const tim = new TimMain({sdkappid:sdkappid})// 在 preload 中使用im sdk// preload/index.ts (示例路径)import TimRender from 'im_electron_sdk/dist/renderer'const timRender = new TimRender();
本页内容是否解决了您的问题?