




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
(SbAPICloud(SbAPICloud/r/在APICloud平臺(tái)中,融云IM云服務(wù)的使用教程實(shí)現(xiàn)功能:融云會(huì)話聊天及,發(fā)送表情消息使用模塊:rongCloudchatBox教程開始:因?yàn)槿谠茷榈谌侥K,每次調(diào)試都得需要云編譯,建議大家先把UI和基本代碼做好。JS插件使用:zepto.min.js一、UI的制作效果圖:中國(guó)移動(dòng)我國(guó)'**百…//QSJ23:16你好相忘共見到榔在做什幺呢您你好相忘共見到榔在做什幺呢您CSS代碼:/*會(huì)話消息容器*/#messageList{padding:15px0;overflow:hidden;}/*接收消息類,左側(cè)*/.receiver{clear:both;}.receiver.receiver-avatar{float:left;}.receiver.receiver-avatarimg{width:50px;height:50px;}.receiver.receiver-cont{background-color:#faff72;float:left;margin:020px10px15px;padding:10px;border-radius:7px;max-width:60%;position:relative;}.receiver.status{width:30px;height:30px;position:absolute;right:-35px;top:3px;}/*發(fā)送消息類,右側(cè)*/.sender{clear:both;}.sender.status{width:30px;height:30px;position:absolute;left:-35px;top:3px;font-size:18px;font-weight:700;color:#990000;}.sender.statusimg{width:30px;height:30px;}.sender.sender-avatar{float:right;}.sender.sender-avatarimg{width:50px;height:50px;}.sender.sender-cont{float:right;background-color:#15b5e9;margin:010px10px20px;padding:10px;border-radius:7px;color:#ffffff;max-width:60%;position:relative;}.left_triangle{height:0px;width:0px;border-width:8px;border-style:solid;border-color:transparent#faff72transparenttransparent;position:absolute;left:-16px;top:6px;}.right_triangle{height:0px;width:0px;border-width:8px;border-style:solid;border-color:transparenttransparenttransparent#15b5e9;position:absolute;right:-16px;top:6px;}<divid="messageList"><divclass="sender"><divclass="sender-avatar"><imgsrc="chatTemplateExample2_files/cat.jpg"></div><divclass="sender-cont"><divclass="right_triangle"></div><span><imgsrc="發(fā)送用戶頭像"width="30"height="30">發(fā)送內(nèi)容</span><divclass="status"><!--發(fā)送狀態(tài)--></div></div></div><divclass="receiver"><divclass="receiver-avatar"><imgsrc="對(duì)方用戶頭像",</div><divclass="receiver-cont"><divclass="left_triangle"></div><span>發(fā)送內(nèi)容</span></div></div></div>上面的就直接拿去復(fù)制使用了二、融云的鏈接融云的鏈接需要用到token了,我們可以在自己的服務(wù)器搭建一個(gè)生成獲取token的方法。這個(gè)方法在融云的文檔里面有介紹,以php為例:生成用戶的token要使用到用戶ID,用戶昵稱,用戶頭像。網(wǎng)站上的每個(gè)用戶都需要對(duì)應(yīng)一個(gè)token,可以將這個(gè)token寫入到自己的用戶表中,以便調(diào)取使用。在APP上使用融云聊天時(shí)token時(shí)只需要獲取自己的token就可以。APP我使用的方法是用戶登錄后get獲取token然后寫入到本地?cái)?shù)據(jù)庫(kù)中,然后從本地調(diào)用(這樣有點(diǎn)安全性問題)class類classServerAPI{private$appKey;//appKeyprivate$appSecret;//secretconstSERVERAPIURL='.rong.io';〃請(qǐng)求服務(wù)地址private$format;〃數(shù)據(jù)格式j(luò)son/xml/***參數(shù)初始化@param$appKey@param$appSecret@paramstring$format/publicfunction_construct($appKey,$appSecret,$format='json'){$this->appKey=$appKey;$this->appSecret=$appSecret;$this->format=$format;}/**獲取Token方法@param$userId用戶Id,最大長(zhǎng)度32字節(jié)。是用戶在App中的唯一標(biāo)識(shí)碼,必須保證在同一個(gè)App內(nèi)不重復(fù),重復(fù)的用戶Id將被當(dāng)作是同一用戶。@param$name用戶名稱,最大長(zhǎng)度128字節(jié)。用來在Push推送時(shí),或者客戶端沒有提供用戶信息時(shí),顯示用戶的名稱。@param$portraitUri用戶頭像URI,最大長(zhǎng)度1024字節(jié)。@returnjson|xml/publicfunctiongetToken($userId,$name,$portraitUri){try{if(empty($userId))thrownewException('用戶Id不能為空');if(empty($name))thrownewException('用戶名稱不能為空');if(empty($portraitUri))thrownewException('用戶頭像URI不能為空');$ret=$this->curl(7user/getToken',array('userId'=>$userId,'name'=>$name,'portraitUri'=>$portraitUri));if(empty($ret))thrownewException('請(qǐng)求失敗');return$ret;}catch(Exception$e){print_r($e->getMessage());}}}下面開始聊天的程序,大體思路為:打開好友對(duì)話窗口—加載融云模塊--—初始化融云—連接融云(我的token)--—發(fā)送消息(對(duì)方用戶ID)|-加載―--初始化—鏈接—監(jiān)聽消息首先我們來先實(shí)現(xiàn)給指定用戶發(fā)送消息(結(jié)合chatBox)JS1.獲取指定用戶ID,一般情況下是從其他頁(yè)面?zhèn)鬟f過來的(比如好友列表),加載chatBox模塊下面代碼里面有三個(gè)自定義函數(shù),getMessage(mytoken);監(jiān)聽獲取最新消息sendMessage(mytoken,sendMsg);發(fā)送消息getImgsPaths(sourcePathOfChatBox,callback);表情圖片類的處理這三個(gè)后面會(huì)有單獨(dú)說明vartouserid=null;好友ID全局apiready=function(){touserid=api.pageParam.touserid;//好友用戶IDvarmytoken=$api.getStorageCtoken');//我的tokengetMessage(mytoken);〃獲取最新消息,后面會(huì)有專門介紹〃引入chatboxvarchatBox=api.require('chatBox');varsourcePath="widget://image/emotion";//表情存放目錄varemotionData;//存儲(chǔ)表情getImgsPaths(sourcePath,function(emotion){emotionData=emotion;})chatBox.open({〃按鈕類,圖片URL就根據(jù)實(shí)際情況來switchButton:{faceNormal:"widget://image/chatBox_face1.png",faceHighlight:"widget://image/chatBox_face1.png",addNormal:"widget://image/chatBox_add1.png",fbAPICloudfbAPICloud/r/fbAPICloudfbAPICloud/r/addHighlight:"widget://image/chatBox_add1.png",keyboardNormal:"widget://image/chatBox_key1.png",keyboardHighlight:"widget://image/chatBox_key1.png"},sourcePath:sourcePath},function(ret,err){/**1.用戶輸入文字或表情*//*用戶輸入表情或文字*//*使用讀文件方法,讀json*/varsendMsg=transText(ret.msg);〃發(fā)送消息sendMessage(mytoken,sendMsg);//發(fā)送消息的函數(shù),后面會(huì)有介紹/*將文字中的表情符號(hào)翻譯成圖片,并可自定義圖片尺寸*/functiontransText(text,imgWidth,imgHeight){varimgWidth=imgWidth||30;varimgHeight=imgHeight||30;varregx=八[(.*?)\]/gm;vartextTransed=text.replace(regx,function(match){varimgSrc=emotionData[match];if(!imgSrc){〃說明不對(duì)應(yīng)任何表情,直接返回returnmatch;}varimg="<imgsrc="+imgSrc+"width="+imgWidth+”height="+imgHeight+">";returnimg;});returntextTransed;}});}這樣頁(yè)面就成功加載了chatBox模塊,下面先介紹一下表情圖片類的處理函數(shù),看不明白的就直接拿去使用了/*一個(gè)工具方法:可以獲取所有表情圖片的名稱和真實(shí)URL地址,以JSON對(duì)象形式返回。其中以表情文本為屬性名,以圖片真實(shí)路徑為屬性值*/functiongetImgsPaths(sourcePathOfChatBox,callback){varjsonPath=sourcePathOfChatBox+"/emotion.json";/H情的JSON數(shù)組api.readFile({path:jsonPath},function(ret,err){if(ret.status){varemotionArray=JSON.parse(ret.data);varemotion={};for(varidxinemotionArray){varemotionitem=emotionArray[idx];varemotionText=emotionitem["text"];varemotionUrl=”../image/emotion/"+emotionItem["name"]+".png";emotion[emotionText]=emotionUrl;}/*把emotion對(duì)象回調(diào)出去*/if("function"===typeof(callback)){callback(emotion);}}});}.使用融云發(fā)送消息先加載融云模塊,在初始化,初始化后鏈接,發(fā)送消息sendMessage(mytoken,content);我的token,消息內(nèi)容〃發(fā)送消息functionsendMessage(mytoken,content){varrong=api.require('rongCloud');rong.init();〃初始化rong.connect({token:mytoken/俄的token},function(ret,err){if(ret.status=="success"){rong.sendTextMessage({conversationType:平區(qū)1丫人丁七',//類型targetid:touserid,〃好友ID,因?yàn)槭窃O(shè)置了全局,所以直接拿來使用了text:content,〃消息內(nèi)容extra:''},function(ret,err){if(ret.status=='prepare'){〃準(zhǔn)備發(fā)送$("#messageList").append('<divclass="sender"><divclass="sender-avatar"><imgsrc="/uploadfile/member/1/avatar/1.jpg"></div><divclass="sender-cont"><divclass="right_triangle"></div><span>'+ret.result.message.content.text+'</span><divid="status_'+ret.result.message.messageId+”'class="status">準(zhǔn)備發(fā)送時(shí)的狀態(tài),可以加載一張loading圖片</div></div></div>');}elseif(ret.status=='success'){〃發(fā)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款融資居間服務(wù)合同范本
- 加梯安裝合同范例
- 醫(yī)生技術(shù)股協(xié)議合同范本
- 單位燈具購(gòu)買合同范本
- 修車合同范本模板
- 農(nóng)村建房買房合同范本
- 農(nóng)村豬場(chǎng)合同范本
- 人事專員勞務(wù)合同范本
- 勞務(wù)供銷合同范例
- dp付款方式合同范本
- 銷售人員商務(wù)禮儀培訓(xùn)通用課件
- 全國(guó)各省(直轄市、自治區(qū))市(自治州、地區(qū))縣(縣級(jí)市)區(qū)名稱一覽表
- 大學(xué)美育導(dǎo)引 課件 第五章 體驗(yàn)人生在世-戲劇
- 大學(xué)美育導(dǎo)引 課件 第六章 沉浸光影世界-電影
- 化學(xué)品危險(xiǎn)物質(zhì)替代技術(shù)
- 醫(yī)院收費(fèi)價(jià)格注意培訓(xùn)課件
- 臨港產(chǎn)業(yè)基地污水處理廠提標(biāo)改造工程設(shè)備及安裝工程招投標(biāo)書范本
- 中小學(xué)校課外讀物負(fù)面清單管理措施
- 高精度衛(wèi)星定位授時(shí)系統(tǒng)
- 中醫(yī)學(xué)教學(xué)課件經(jīng)絡(luò)與穴位
- 第1課+古代亞非【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
評(píng)論
0/150
提交評(píng)論