web項(xiàng)目中使用iframe的方式引入騰訊IM即時(shí)通信,應(yīng)用場景為客服蝎毡、聊天

最近公司有項(xiàng)目需要客服聊天功能厚柳,我們選擇了騰訊的IM,對于前端來說很好控制沐兵,前端只需對應(yīng)傳參即可别垮,大多由后端控制。百度了很多都沒找到想要的教程扎谎,所以自己寫下來對于引用IM的實(shí)踐碳想。
功能:
1. 一對一聊天
2.群組聊天
3.默認(rèn)選中對話
4.以及自帶的發(fā)送表情包、文件毁靶、圖片胧奔、消息撤回、多選轉(zhuǎn)發(fā)等類似于QQ的功能

官方demo下載地址:https://github.com/tencentyun/TIMSDK/tree/master/H5
官方SDK文檔:https://web.sdk.qcloud.com/im/doc/zh-cn/SDK.html#login
項(xiàng)目結(jié)構(gòu)見Gitee地址:https://gitee.com/jiangxingjie/tengxun-chat.git

一预吆、下載IM并配置 SDKAppIDSECRETKEY龙填,IM是vue寫的,所以大部分地方可以去自己看明白更改拐叉。

二岩遗、默認(rèn)選中對話,所有的聊天對話都為后端生成凤瘦,前端有一對多的情況宿礁,所以我們通過后端傳值的方式拿到要激活的會(huì)話默認(rèn)選中。默認(rèn)選中調(diào)用vuex里的checkoutConversation方法蔬芥。
注意:一定要isSDKReady梆靖,也就是初始化成功之后再去調(diào)checkoutConversation方法,不然會(huì)因?yàn)槲闯跏蓟瘓?bào)錯(cuò)坝茎。

onReadyStateUpdate({ name }) {
     const isSDKReady = name === this.TIM.EVENT.SDK_READY ? true : false;
     this.$store.commit("toggleIsSDKReady", isSDKReady);

     if (isSDKReady) {
       this.tim
         .getMyProfile()
         .then(({ data }) => {
           this.$store.commit("updateCurrentUserProfile", data);
         })
         .catch((error) => {
           this.$store.commit("showMessage", {
             type: "error",
             message: error.message,
           });
         });
       this.$store.dispatch("getBlacklist");
       // 登錄trtc calling
       this.trtcCalling.login({
         sdkAppID: this.sdkAppID,
         userID: this.userID,
         userSig: this.userSig,
       });
       // 默認(rèn)選中要溝通的群
       // console.log(this.groupID, '這是默認(rèn)選中要溝通的群')
       this.$store.dispatch(
         "checkoutConversation",
         this.groupID //名片ID
       );
     }
   },

三涤姊、用iframe引入項(xiàng)目

HTML部分

<!-- iframedialog -->
    <base-dialog class="dialog-IM" width="1000px" :visible.sync="TimShow" height="800px">

        <iframe :src="TimSrc" height="100%" width="100%"></iframe>

    </base-dialog>

喚起IMdialog

async toTIM(groupId){
    const res =  await imMsgClear()
        if(res.success){
             this.ImMessage = 0
             this.TimSrc=process.env.IM_URL+'userId='+this.userInfo.id+'&userSig='+this.userInfo.imSign+'&groupId='+groupId
             this.TimShow = true
        }

  }

因?yàn)橥籭d不能多處登錄IM暇番,所以每次關(guān)掉dialog都要調(diào)用一遍IM的退出api嗤放,我們將IM項(xiàng)目給父頁面?zhèn)髦?br> 在IM項(xiàng)目中調(diào)用vuex里的logout方法,給這個(gè)方法添加上iframe給父頁面?zhèn)髦?/p>

logout(context) {
      // 若有當(dāng)前會(huì)話,在退出登錄時(shí)已讀上報(bào)
      if (context.rootState.conversation.currentConversation.conversationID) {
        tim.setMessageRead({ conversationID: context.rootState.conversation.currentConversation.conversationID })
      }
      tim.logout().then(() => {
        window.parent.postMessage('logout',"*");
        context.commit('toggleIsLogin')
        context.commit('stopComputeCurrent')
        context.commit('reset')
      })
    }

父頁面接受值

mounted() {
        let that = this;
        //接受iframe頁面的值
        window.addEventListener("message", function (e) {
          // console.log(e.data)
          if(e.data=='logout'){
             that.TimSrc = ''
            that.TimShow = false
          }
        });
        
  }

騰訊IM官方給的是vue項(xiàng)目壁酬,熟悉vue的人改起來應(yīng)該還是挺方便的次酌。
2021-07-12新增router,取參數(shù)更加方便舆乔。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末岳服,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子希俩,更是在濱河造成了極大的恐慌吊宋,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,039評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颜武,死亡現(xiàn)場離奇詭異璃搜,居然都是意外死亡拖吼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評論 3 395
  • 文/潘曉璐 我一進(jìn)店門这吻,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吊档,“玉大人,你說我怎么就攤上這事唾糯〉∨穑” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評論 0 356
  • 文/不壞的土叔 我叫張陵移怯,是天一觀的道長香璃。 經(jīng)常有香客問我,道長芋酌,這世上最難降的妖魔是什么增显? 我笑而不...
    開封第一講書人閱讀 58,868評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮脐帝,結(jié)果婚禮上同云,老公的妹妹穿的比我還像新娘。我一直安慰自己堵腹,他們只是感情好炸站,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著疚顷,像睡著了一般旱易。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上腿堤,一...
    開封第一講書人閱讀 51,692評論 1 305
  • 那天阀坏,我揣著相機(jī)與錄音,去河邊找鬼笆檀。 笑死忌堂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酗洒。 我是一名探鬼主播士修,決...
    沈念sama閱讀 40,416評論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼樱衷!你這毒婦竟也來了棋嘲?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,326評論 0 276
  • 序言:老撾萬榮一對情侶失蹤矩桂,失蹤者是張志新(化名)和其女友劉穎沸移,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡雹锣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評論 3 337
  • 正文 我和宋清朗相戀三年流妻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片笆制。...
    茶點(diǎn)故事閱讀 40,102評論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡绅这,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出在辆,到底是詐尸還是另有隱情证薇,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評論 5 346
  • 正文 年R本政府宣布匆篓,位于F島的核電站浑度,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鸦概。R本人自食惡果不足惜箩张,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窗市。 院中可真熱鬧先慷,春花似錦、人聲如沸咨察。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摄狱。三九已至脓诡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間媒役,已是汗流浹背祝谚。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留酣衷,地道東北人交惯。 一個(gè)月前我還...
    沈念sama閱讀 48,332評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像鸥诽,于是被迫代替她去往敵國和親商玫。 傳聞我的和親對象是個(gè)殘疾皇子箕憾,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評論 2 355

推薦閱讀更多精彩內(nèi)容