android 融云瀏覽大圖,融云 Android sdk kit 頭像昵稱更新機制

先申明筆者的實現方式不是唯一 也不一定是最優化的方案 如果您看到此篇博文 有不同看法 或者 更好的優化 更高的效率 歡迎在評論發表意見?融云官網點我

融云頭像機制相關視頻詳解

首先跟大家說一下 kit 跟 lib 的頭像機制 kit 是已經包含融云已經給開發者定制好的界面 諸如 會話界面 會話列表 1.0+版本還有好友列表 設置頁面等 lib 是通訊能力庫 所以開發者如果是基于 lib 開發 本篇博文對你來說就是不適用的 因為 lib 是自己去實現聊天界面 頭像 和 昵稱的展示就需要你自己去做管理了

token:

這邊還需要跟大家引入一下 ?token 的概念 您也可以參閱?OAuth2.0協議?, 對于用戶來說 是沒有 token ?這個概念的 他們只有 帳號 密碼 昵稱 頭像等 , 但是對于開發者來說 token 是您連接融云 服務器的身份令牌 你必須要有 token 才能連接到融云 服務器 ?而且 token 是唯一的 就跟你的 userid 一樣是一一對應的

關于token的獲取 ?目前融云 提供了兩種獲取方式:

1: 在你還在做測試 或者 你的 server 還沒有搭建好的時候 可以去融云官網 ?登錄你的開發者帳號 在 API 調試平臺進行token獲取 見下圖:

42b64b4eacede8e316b4229225c48b2f.png

點擊以后 ?在該頁面下方 ?會返回一個模擬的 json 竄 給你 ?如果 提示 200 就是表示獲取token成功 你即可以把 json 中的 token 摘取出來

自己保存以后 留作測試用

2 測試完畢 或者服務器已經搭建好了 需要動態獲取 token ,這個時候的一個邏輯就是 ?您的 server 服務器 找融云服務器 獲取 token

(詳情見官網server文檔),然后您的服務器

提供接口給你的客戶端 去請求 這個token ,有小部分開發者疑惑為什么一定要自己的服務器 這點是必須有的 獲取 token 只是

服務器最基本的功能 還有很多 你自身的邏輯需要有 server 去維護

注:不管您是通過測試平臺獲取 token 還是 服務端 找 融云 server 獲取 token 時候 有三個值 ?userid ?username portraitUri 這邊

強烈建議您把 昵稱 和 頭像都填上

name&portrait:

用戶信息提供者: 1.0+ setGetUserInfoProvider ?2.0+ ?setUserInfoProvider

用戶信息提供者 實現成功以后 在你的 會話界面 和 會話列表 頭像和昵稱 是會有正確展現的 實現代碼如下:

RongIM.setUserInfoProvider(this, false);

/**

* 用戶信息的提供者

*

* 融云會話界面 和 會話列表的 頭像 昵稱展示

*/

@Override

public UserInfo getUserInfo(String userId) {

//先從獲取數據庫操作的實例

FriendDao friendDao = DBManager.getInstance(MainActivity.this)

.getDaoSession().getFriendDao();

//獲取數據庫中我所有好友的bean對象

List friends = friendDao.loadAll();

if (friends != null && friends.size() > 0) {

//增強for把所有的用戶信息 return 給融云

for (Friend friend : friends) {

//判斷返回的userId

if (friend.getRongId().equals(userId)) {

return new UserInfo(friend.getRongId(), friend.getName(),

Uri.parse(friend.getPortraitUri()));

}

}

}

return null;

}

用戶信息提供者調用的實際建議在 init connect 之后 , 調用 會話列表 和 會話界面之前,筆者是在登錄的時候先把好友屬性

從自己的server 請求下來 塞到數據庫中做一個數據庫緩存 , 當然您自己可以有更好的方式 這邊僅作參考 設置以后

你可以觀察調用的時機 和 在 return 前輸出 每個對象 看看是否已經 return 給我們

refresh:

用戶信息的刷新我們這邊也提供了方法 請參見下面代碼 :

2.0+:

private void refreshUserInfo(UserInfo userInfo) {

if (userInfo == null||mRrongIMClient == null) {

throw new IllegalArgumentException();

}

if(RongContext.getInstance()!=null){

RongContext.getInstance().getUserInfoCache().put(userInfo.getUserId(),userInfo);

}

}

1.0+:

private void refreshUserInfo(UserInfo userInfo) {

if (userInfo == null||mRrongIMClient == null) {

throw new IllegalArgumentException();

}

if(RCloudContext.getInstance()!=null){

RCloudContext.getInstance().getUserInfoCache().put(userInfo.getUserId(),userInfo);

}

}

文章結束之前 提醒下 頭像的 路徑支持 http:// 或者 本地 sd 卡 file:/// 另

外不要使用內網 局域網路徑 您可以在瀏覽器看看是否能夠正常解析 來做檢測 非常感謝大家耐心看完

希望文章能夠對你有幫助

推薦github上一個好用的框架

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/532772.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/532772.shtml
英文地址,請注明出處:http://en.pswp.cn/news/532772.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one.

RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. 報錯信息 報錯信息: RuntimeError: Expected to have finished reduction in the prior iteration before starting a new one. This error indicates tha…

android訪問重定向地址,如何從android中重定向url加載圖像(示例代碼)

嗨,我正面臨這個問題我從RESTCall獲取了一個URL網址是http://hck.re/kWWxUI但是當我在瀏覽器中檢查時,它會重定向到https://s3-ap-southeast-1.amazonaws.com/he-public-data/afreen2ac5a33.jpg如何將此圖像加載到我的imageView中我已經知道如何將畢加索…

Linux中的awk、sed、grep及正則表達式詳解

Linux中的awk、sed、grep及正則表達式詳解 簡介 awk、sed和grep是Linux中文本操作的三大利器。 其中awk適用于取列,sed適用于取行,grep適用于過濾。 正則表達式 首先我們來介紹一下正則表達式,正則表達式(regular expression)描述了一種…

android聚焦時如何給控件加邊框,edittext設置獲得焦點時的邊框顏色

第一步:為了更好的比較,準備兩個一模一樣的EditText(當Activity啟動時,焦點會在第一個EditText上,如果你不希望這樣只需要寫一個高度和寬帶為0的EditText即可避免,這里就不這么做了),代碼如下:a…

gcc參數 -i, -L, -l, -include

gcc參數 -i, -L, -l, -include -i,-L,-l,-include -l和-L -l參數就是用來指定程序要鏈接的庫,-l參數緊接著就是庫名,那么庫名跟真正的庫文件名有什么關系呢?就拿數學庫來說,他的庫名是m&…

xargs 命令教程

xargs 命令教程 轉自:http://www.ruanyifeng.com/blog/2019/08/xargs-tutorial.html 作者: 阮一峰 日期: 2019年8月 8日 xargs是 Unix 系統的一個很有用的命令,但是常常被忽視,很多人不了解它的用法。 本文介紹如…

android strictmode有什么作用,Android 性能優化 之 StrictMode

8種機械鍵盤軸體對比本人程序員,要買一個寫代碼的鍵盤,請問紅軸和茶軸怎么選?StrictMode概述StrictMode 是用來檢測程序中違例情況的開發者工具。使用StrictMode,系統檢測出主線程違例的情況會做出相應的反應,如日志打…

curl 的用法指南

curl 的用法指南 轉自:http://www.ruanyifeng.com/blog/2019/09/curl-reference.html 作者: 阮一峰 日期: 2019年9月 5日 簡介 curl 是常用的命令行工具,用來請求 Web 服務器。它的名字就是客戶端(client&#xf…

怎么在html顯示已登錄狀態,jQuery Ajax 實現在html頁面實時顯示用戶登錄狀態

當網站是全靜態的html頁面時,而又希望網站會員在登錄之后并在所有頁面頭部顯示登錄狀態,如用戶名等,如果未登錄就是未登錄狀態,下面給大家來分享實現的方法。一、在html靜態頁面中加入div,并指定ID如:二、新…

互斥鎖、條件變量、信號量淺析

互斥鎖、條件變量、信號量淺析 互斥鎖與條件變量 條件變量是為了保證同步 條件變量用在多線程多任務同步的,一個線程完成了某一個動作就通過條件變量告訴別的線程,別的線程再進行某些動作(大家都在semtake的時候,就阻塞在哪里&a…

xpwifi熱點設置android,教你在XP電腦中開啟設置WiFi熱點使用的步驟

對于系統中網絡的連接問題是最重要的,那在處理不同的錯誤的情況中,對于無線網絡的設置也就是我們說的WiFi的使用也是會遇到問題的,那在操作的時候對于電腦中是怎么實現設置WiFi熱點的的,對于這個問題今天小編就來跟大家分享一下教…

C/C++ 指針詳解

指針詳解 參考視頻:https://www.bilibili.com/video/BV1bo4y1Z7xf/,感謝Bilibilifengmuzi2003的搬運翻譯及后續勘誤,也感謝已故原作者Harsha Suryanarayana的講解,RIP。 學習完之后,回看找特定的知識點,善…

android雙聯動列表,Android Fragment實現列表和內容聯動

在平板上經常能看到這種的情況:左邊是一個列表,右邊是列表項對應的內容,當點擊某一個列表時,右邊內容區也會隨之改變。下面使用fragment簡單的demo:思路:在mainactivity定義一個回調接口,并在列…

linux /proc 詳解

linux /proc 詳解 本文整理了一下 linux /proc下的幾個常用的目錄和文件,可供查閱,之后在學習工作中有別的用到的話會再補充。 /proc 簡介 Linux系統上的/proc目錄是一種文件系統,即proc文件系統。與其它常見的文件系統不同的是&#xff0…

android模擬器太卡,安卓模擬器安裝之后太卡怎么解決

用安卓模擬器玩游戲原理就是在電腦上安裝了一部手機,如果你的電腦配置不是非常高,能不卡頓嗎?遇到卡頓怎么解決?1、安裝最新版本的顯卡驅動。逍遙模擬器對于顯卡的性能要求很高,因此升級至最新版本的顯卡驅動,是確保逍遙模擬器流…

編程環境中Runtime(運行時)的三個含義

編程環境中Runtime(運行時)的三個含義 轉自:https://www.zhihu.com/question/20607178 知乎答主doodlewind 三個含義 實際上編程語境中的 runtime 至少有三個含義,分別是: 指「程序運行的時候」,即程序…

非常不錯的一款html5【404頁面】,不含js腳本可以左右擺動,原生JavaScript實現日歷功能代碼實例(無引用Jq)...

這篇文章主要介紹了原生JavaScript實現日歷功能代碼實例(無引用Jq),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下成品顯示,可左右切換月份html 代碼移動端日歷日一二三四五六css代碼*{margin: 0;pa…

12 [虛擬化] 進程抽象;fork,execve,exit

12 [虛擬化] 進程抽象;fork,execve,exit 南京大學操作系統課蔣炎巖老師網絡課程筆記。 視頻:https://www.bilibili.com/video/BV1N741177F5?p12 講義:http://jyywiki.cn/OS/2021/slides/8.slides#/ 本講概述 回到“…

計算機應用與基礎實踐怎么考,自考計算機基礎應用科目筆試和實踐性考試怎么考...

自考計算機基礎應用科目筆試和實踐性考試怎么考? 報考自考的考生有些專業的考生會在自己的課程科目中發現計算機基礎應用不僅有理論知識考試還有實踐性考試,那么自考計算機基礎應用科目的筆試和實踐性考試怎么考?自考計算機基礎應用科目筆試怎…

14 [虛擬化] 虛存抽象;Linux進程的地址空間

14 [虛擬化] 虛存抽象;Linux進程的地址空間 南京大學操作系統課蔣炎巖老師網絡課程筆記。 視頻:https://www.bilibili.com/video/BV1N741177F5?p14 講義:http://jyywiki.cn/OS/2021/slides/10.slides#/ 本講概述 程序 狀態機;…