A. 如何正確的初始化 RongIM.init
載隨載融雲發SDK址Demo源碼官提供示例demo需修改直接運行即功查看融雲相關功能SDk兩部:融雲IM界面組件(imkitht)融雲IM通訊能力庫(imlib)創建應用前往融雲發者平台創建應用安卓端需要注意應用標識-PackageName處安卓項目包名面代碼包名即io.rong.imkit.demoAppKey-AppKey處manifest文件所需要聲明AppKey應值發階段使用發環境(測試環境)發完應切換產環境(線環境)簡單示例項目配置添加APP_KEY聲明使用imkit進行發其所android:host值修改發應用包名使用AndroidStudio發記添加so文件引用編寫代碼初始化建議放ApplicationonCreate放進行RongIM.init(this);Token處需要發者Server端支持測試發前往融雲發者平台選擇API調試-用戶服務-獲取Token進行調試發連接融雲器Token即連接融雲伺服器//處直接hardcode給token賦值請替換您自TokenStringtoken="+==";//連接融雲伺服器RongIM.connect(token,newRongIMClient.ConnectCallback(){@OverridepublicvoidonSuccess(Strings){//處處理連接功Log.d("Connect:","Loginsuccessfully.");}@OverridepublicvoidonError(ErrorCodeerrorCode){//處處理連接錯誤Log.d("Connect:","Loginfailed.");}});伺服器連接功即調用融雲各類聊介面
B. 融雲連接伺服器錯誤提示 talktoken獲得到,connect之後,onError回調函數被調
https://developer.rongcloud.cn/ticket/info/ZSCnKpDqrOSrWCs3BQ==?type=1
https://developer.rongcloud.cn/ticket/info/NgZXuIi51et28eDNDQ==?type=1
融雲官方的網站已經說的很明確了。。就是,網路連接的問題(應該是融雲那邊的事情),SDK會自動重連,開發者不需要做什麼調整。
獲取到token以後進行connect。基本上只要獲取到token就可以進行聊天了,即使connect並沒有onSuccess。如果為了以防萬一可以加以判斷,比如token沒有獲取到執行什麼樣的操作,onError執行什麼操作之類的,這個取決於你的需求。
C. 融雲申請上線後,開發環境和生產環境可以同時存在嗎,上線成功後開發環境還可以使用嗎
1、首先確保您的應用在開發環境都已經測試完成,可以正常使用。
2、然後,確認實現了在 Connect 方法中重新獲取 Token 的邏輯:
SDK 1.0:通過判斷 TOKEN_INCORRECT 錯誤碼,重新獲取 Token 的邏輯
SDK 2.0:通過 onTokenIncorrect 回調方法實現重新獲取 Token 的邏輯
D. 融雲 導入IMKIT和Toolkit 沖突如何解決
下載隨後下載融雲開發SDK地址在此Demo源碼為官方提供的示例demo,無需修改,直接運行即可成功查看融雲的相關功能SDk分為兩部分:融雲IM界面組件(imkitht)和融雲IM通訊能力庫(imlib)創建應用前往融雲開發者平台創建一個應用,安卓端需要注意的地方有應用標識-PackageName此處為安卓項目的包名,如下面代碼的包名即為io.rong.imkit.demoAppKey-AppKey此處為manifest文件中所需要聲明的AppKey對應的值,開發階段使用開發環境(測試環境),開發完成後應切換為生產環境(線上環境),簡單的示例如下項目配置添加對APP_KEY的聲明如使用imkit進行開發,將其所有android:host的值修改為開發應用的包名如使用AndroidStudio開發,記得添加對so文件的引用編寫代碼初始化,建議放在Application的onCreate放法中進行RongIM.init(this);得到Token,此處需要開發者Server端的支持,如果只是為了測試開發,可以前往融雲開發者平台選擇API調試-用戶服務-獲取Token進行調試開發連接融雲器,得到Token後即可連接融雲的伺服器了//此處直接hardcode給token賦值,請替換為您自己的Token。Stringtoken="+==";//連接融雲伺服器。RongIM.connect(token,newRongIMClient.ConnectCallback(){@OverridepublicvoidonSuccess(Strings){//此處處理連接成功。Log.d("Connect:","Loginsuccessfully.");}@OverridepublicvoidonError(ErrorCodeerrorCode){//此處處理連接錯誤。Log.d("Connect:","Loginfailed.");}});當伺服器連接成功後,即可調用融雲的各類聊天介面了
E. 怎麼使用融雲IM的推送功能,融雲推送API
為了接收推送消息,您需要自定義一個繼承自 PushMessageReceiver 類的 BroadcastReceiver (必須實現,否則會收不到推送消息),實現其中的 onNotificationMessageArrived,onNotificationMessageClicked 然後把該 receiver 注冊到 AndroidManifest.xml 文件中。
自定義的 BroadcastReceiver:
public class DemoNotificationReceiver extends PushMessageReceiver {
@Override
public boolean onNotificationMessageArrived(Context context, PushNotificationMessage message) {
return false;
}
@Override
public boolean onNotificationMessageClicked(Context context, PushNotificationMessage message) {
return false;
}
}
注冊到應用的 AndroidManifest.xml 裡面:
<receiver
android:exported="true"
android:name="您自定義的 broadcastReceiver 類名">
<intent-filter>
<action android:name="io.rong.push.intent.MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_ARRIVED" />
<action android:name="io.rong.push.intent.MESSAGE_CLICKED" />
<action android:name="io.rong.push.intent.MI_MESSAGE_CLICKED" />
</intent-filter>
</receiver>
onNotificationMessageArrived 用來接收伺服器發來的通知欄消息(消息到達客戶端時觸發),默認return false,通知消息會以融雲 SDK 的默認形式展現。如果需要自定義通知欄的展示,在這里實現自己的通知欄展現代碼,同時 return true 即可。
onNotificationMessageClicked 是在用戶點擊通知欄消息時觸發 (注意:如果自定義了通知欄的展現,則不會觸發),默認 return false 。如果需要自定義點擊通知時的跳轉,return true 即可。融雲 SDK 默認跳轉規則如下
只有一個聯系人發來一條或者多條消息時,會通過 intent 隱式啟動會話 activity,intent 的 uri 如下:
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
builder.appendPath("conversation").appendPath(type.getName())
.appendQueryParameter("targetId", targetId)
.appendQueryParameter("title", targetName);
uri = builder.build();
intent.setData(uri);
startActivity(intent);
如果你的 AndroidManifest.xml 裡面配置 A activity 攔截了這個 intent ,那在點擊這條通知欄消息 時就會啟動 activity A 。
<activity
android:name="A"
android:launchMode="singleTop"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:pathPrefix="/conversation/"
android:scheme="rong" />
</intent-filter>
</activity>
多個聯系人發來多條消息時,通過 intent 隱式啟動會話列表 activity,intent 的 uri 配置如下:
Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder builder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
builder.appendPath("conversationlist");
Uri uri = builder.build();
intent.setData(uri);
startActivity(intent);
如果你的 AndroidManifest.xml 裡面配置 B activity 攔截了這個 intent,那在點擊這條通知欄消息 時就會啟動 activity B。
<activity
android:name="B"
android:launchMode="singleTask"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden|adjustResize">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:path="/conversationlist"
android:scheme="rong" />
</intent-filter>
</activity>
可以在融雲開發者後台廣播推送-廣播消息-推送中,發起遠程推送。
點擊推送消息時會觸發出如下 action 事件:
Intent intent = new Intent();
intent.setFlags(intent.FLAG_ACTIVITY_NEW_TASK);
Uri.Builder uriBuilder = Uri.parse("rong://" + this.getPackageName()).buildUpon();
uriBuilder.appendPath("push_message")
.appendQueryParameter("targetId", targetId)
.appendQueryParameter("pushData", pushData)
.appendQueryParameter("pushId", pushId)
.appendQueryParameter("extra", extra);
startActivity(intent);
如果你的 AndroidManifest.xml 裡面配置了 C activity 攔截這個 action, 那麼點擊時就會跳轉到 activity C。
<activity
android:name="C"
android:launchMode="singleTask"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="你的包名"
android:pathPrefix="/push_message"
android:scheme="rong" />
</intent-filter>
</activity>
通過以上步驟,您已完成了融雲推送服務的集成。
F. 融雲測試環境申請上線流程
請問你說的是融雲官方賬號申請上線,還是在項目中轉為正式環境呢?
1、如果是融雲賬號申請上線,那就到融雲官網,申請上線,然後填入你Appid申請的生產推送證書.p12文件,驗證通過後就可以了。
2、將項目轉為正式上線環境,你只需將融雲的appkey切換成正式環境的appkey即可。然後讓後台將開發的appkey換成正式環境的appkey,獲取token返回給你,即可。
G. android融雲即時通訊如何獲取最近一條聊天消息的時間
身邊只有環信的程序猿盆友,得到以下答案: 環信的話很簡單調用conversation.getLastMessage().getMsgTime()就得到了。雖然文不對題,僅供參考。
H. 使用融雲 SDK 避坑指南之 iOS13 推送失敗
融雲 SDK 支持蘋果推送,當我使用的設備升級到 iOS13 及以上時,推送突然就不能用了😫,經過半天的排查,終於找到了問題,原來是 deviceToken 格式變了,具體可以參考 https://blog.csdn.net/yingBi2014/article/details/103457160
問題原因:由於 iOS13以後,蘋果的 deviceToken 格式變了,但是上傳給融雲的 deviceToken 處理方式還是使用的老方式,導致了推送無法收到。
處理方法:
想了解更多的關於融雲推送的問題,可以去看看他們的文檔,寫的還是挺詳細的,圖文都有 https://docs.rongcloud.cn/v3/views/im/ui/guide/private/notify/push/ios.html
融雲官網: https://www.rongcloud.cn/
I. android 融雲token怎麼獲取
唯一可以直接獲取User Token的方法是將用戶導向eBay的登錄界面,並提供Runame和SessionID之類的參數。如果您開發中的移動應用程序無法提供此功能,可以考慮使用別的方法。例如,提供一個server應用將用戶導向登錄界面,生成Token後再發送給移動
J. swift融雲獲取保存的token出現下劃線
下劃線用鍵盤上「0」數字後邊的按鍵,英文輸入狀態下用SHIFT + "-" 就可以上打出。但這不是一條真正意義上的下劃線。
在一些文檔(如WORD)中,下劃線常被用作增強注意。而在網頁中,可以連接的文字(超鏈接)下面一般都有下劃線。
下劃線一般分為單下劃線、雙下劃線、加粗下劃線、下劃虛線等等。作用:強調文字,引起注意。
保存就是把你當前的保管下來