1. 程式人生 > >iOS網易雲信 自定義訊息的坑_未知型別訊息

iOS網易雲信 自定義訊息的坑_未知型別訊息

OK 先閱讀官方文件。。。在gitHub裡面。。

https://github.com/netease-im/NIM_iOS_UIKit/blob/master/Documents/nim_custom_message.md  文件有點坑。。很多細節沒提

直接未知型別訊息錯誤;

不過文件大概給出了思路:
1、model   裡面 encode編碼;

2、啟動時候註冊解析器;  (Demo已經處理了)

//註冊自定義訊息的解析器

    [NIMCustomObjectregisterCustomDecoder:[NTESCustomAttachmentDecodernew]];

3、解碼decode

NTESCustomAttachmentDecoder類中進行解碼

4、佈局

OK 這裡面關鍵四步;

為了排除其他錯誤, 直接拿NIMDemo 新增自定義訊息  贈送禮物吧;

typedefNS_ENUM(NSInteger,NTESCustomMessageType){

    CustomMessageTypeJanKenPon  = 1,//剪子石頭布

    CustomMessageTypeSnapchat   = 2,//閱後即焚

    CustomMessageTypeChartlet   = 3,//貼圖表情

    CustomMessageTypeWhiteboard = 4//白板會話

    CustomMessageTypeSendGift =

5,     //贈送禮物

};



新建model  

NTESSendGiftAttachment  這裡不碼程式碼了  直接copy 猜拳model程式碼;

新建內容View 

NTESSessionSendGiftContentView  一樣copy 猜拳View程式碼; 

記得model和View  裡面的訊息型別 要替換  CustomMessageTypeSendGift 贈送禮物嘛。。。

model裡面 更改View類名

- (NSString *)cellContent:(NIMMessage *)message{

return@"NTESSessionSendGiftContentView"

;

}


OK 這裡面已經搞定了model  View和編碼encode了

在解碼decode類中兩個方法  新增條件

- (id<NIMCustomAttachment>)decodeAttachment:(NSString *)content

{

。。。。。。。。

caseCustomMessageTypeSendGift:

                {

                    attachment = [[NTESSendGiftAttachmentalloc] init];

                    ((NTESSendGiftAttachment *)attachment).value = [datajsonInteger:CMValue];

                }

break;

}


- (BOOL)checkAttachment:(id<NIMCustomAttachment>)attachment{

else if ([attachment isKindOfClass:[NTESSendGiftAttachmentclass]]) {

NSInteger value = [((NTESSendGiftAttachment *)attachment)value];

        check = (value >= 1 && value <=3) ? YES :NO;

    }

}

OK  搞定解碼

接下來找到佈局類 

NTESCellLayoutConfig

新增自定義的訊息型別

- (instancetype)init

{

if (self = [superinit])

    {

_types@[

@"NTESJanKenPonAttachment",

@"NTESSnapchatAttachment",

@"NTESChartletAttachment",

@"NTESWhiteboardAttachment",

@"NTESSendGiftAttachment"

];

        。。。。。

    }

returnself;

}


最後 寫呼叫方面呼叫。。。。

呼叫成功了  猜拳已經OK了

那麼接下來  我們自行替換model 和 View即可;

最後總結自己報錯原因: 最後一步佈局配置 裡面 NTESCellLayoutConfig  沒有新增自定義的訊息型別

相關推薦

iOS 定義訊息_未知型別訊息

OK 先閱讀官方文件。。。在gitHub裡面。。https://github.com/netease-im/NIM_iOS_UIKit/blob/master/Documents/nim_custom_message.md  文件有點坑。。很多細節沒提 直接未知型別訊息錯誤

Android整合(關於聊天傳送位置訊息)

前言: 雲信IM 使用的是高德地圖的SDK 1.官方IM Demo 中 關於傳送位置訊息 的相關程式碼與類如下圖: 圖中選中的都是在官方IM Demo中與 傳送位置訊息 相關的類,其餘未選中的則

iOS音樂首頁源碼、動畫引擎源碼等

圖像 自帶 集成 ref ole hololens demo 拖拽 基礎 iOS精選源碼 自己維護的框架, 超級多功能 圖片選擇SDK:支持多選,相冊選擇,預覽,網絡圖預覽 一款可以簡單實現長按拖拽重排的 UICe

Web IM搭建(Demo)

node 應用 -s 技術分享 研究 安裝 發現 頁面 密鑰 到現在也沒能走成,領導要求讓看下IM之類的東西 網上發現了網易雲信 拿來研究下 首先來說 雲信的sdk和相關demo從http://netease.im/im-sdk-demo 這裏下載 相關文檔的話頁面

IM C#.Net請求、操作ID

創建用戶 自動 技術含量 時間戳 action cas api sps 設定 沒啥技術含量就不寫其他的了 直接上代碼 using System; using System.Collections.Generic; using System.Configuration;

2018數字化轉型將爆發,探索PaaS三大商業模式

終端 個推 雲端 strong 就會 目前 成績 模式 什麽 在雲服務的三種形態中,IaaS、PaaS和SaaS分別代表了雲基礎設施服務、雲應用開發服務和雲應用服務。根據市場調查公司IDC最新的2017年上半年全球市場數據:SaaS占雲服務市場份額68.7%,但增長率卻只有

編譯專案錯誤問題記錄

錯誤一: Error:(6, 0) Gradle DSL method not found: 'google()' 出現這樣的錯誤,主要的原因就是AndroidStudio沒有升級到3.0和Gradle plugin沒有升級到V3.x版本。解決該問題如下: 把google(

&七魚市場總監姜菡鈺:實戰解讀增長黑客在B端業務的運用

近些年 ,隨著網際網路的迅速崛起,“增長黑客”一詞逐漸映入大眾的眼簾,併成為了最熱門的話題之一。從2018年開始,線上流量觸達天花板,引流之爭的激烈程度空前高漲,企業為了獲得更多的關注,產品的比拼、流量的爭奪、轉化率的優化無疑成為了最大的難點和痛點。   通過谷歌、通用和微軟僱用增

IMweb版整合實現(PHP直接上碼)

首先去網易雲信官網下載web版的demo, 下面連結地址: https://github.com/netease-im/NIM_Web_Demo 嵌入到你自己使用的框架中(這裡使用的是TP5) <?php namespace app\web\controller; use

趙加雨:極致匠心的技術團隊撐起60萬開發者

如果不是子彈簡訊的突然逆襲,可能很多人都不會知道網易雲信這個名字,這個在背後默默支撐子彈簡訊的“神祕產品”到底是何方神聖,相信很多開發者朋友都和老孫一樣,對此充滿了好奇。恰逢網易雲信三週年之際,老孫接到了網易雲信CTO趙加雨的專訪邀請,於是,老孫欣然接受邀請,與趙加雨一起來為各位開發者朋友揭開網

IMweb版整合實現

首先去網易雲信官網下載web版的demo, 嵌入到你自己使用的框架中(這裡使用的是TP5) <?php namespace app\web\controller; use think\Controller; use app\common\yxsdk\yunxin

小程式開發中的二三事之IMSDK DEMO

本文由作者鄒永勝授權網易雲社群釋出。 簡介 為了更好的展示我們即時通訊SDK強悍的能力,網易雲信IM SDK微信小程式DEMO的開發就提上了日程。用產品的話說就是: 雲信 IM 小程式 SDK 的能力演示 提供開發者小程式開發參考 換句話說就是在微信裡面通過

從入局到騰飛 與線上教育的三年之約

2015年10月,網易雲信作為網易雲端計算服務的先鋒兵推出,開發者通過SDK和API即可獲得穩定可靠的即時通訊、音視訊通話、直播、點播等技術能力。 2018年10月,網易雲信迎來了三週年里程碑。三年裡,網易雲信依靠網易18年對即時通訊雲、音視訊雲服務研發經驗,以及專業運維服務

Java 實現傳送驗證碼並呼叫介面驗證 (

大概流程: 使用者輸入賬號點選獲取驗證碼,驗證是否繫結手機號碼,繫結則傳送驗證碼 使用者輸入驗證碼,呼叫介面驗證是否正確返回響應 首先我們需要在網易雲信註冊賬號,獲取得到App Key和App Secret 需要注意的幾個引數:     &nb

響鈴:蝸牛讀書“文”、“武”:遊戲之外的AB面

中標 等待時間 管理 要花 分享 渴望 快速 通過 戲劇性 文|曾響鈴來源|科技向令說(xiangling0815)2019年開年,網易又“搞事情”了。近日,網易集團旗下網易雲信、網易七魚主辦的“網易MCtalk泛娛樂創新峰會”(以下簡稱“MCtalk峰會”)在北京幻藝術中

ios音樂原始碼、動畫引擎原始碼等

iOS精選原始碼 iOS優質部落格 簡介Fastlane是一套使用Ruby寫的自動化工具集,用於iOS和Android的自動化打包、釋出等工作,可以節省大量的時間。FastlaneGithub:https:/ /github. com/fast

php傳送簡訊(呼叫實現)

呼叫網易雲信,實現簡訊傳送 //網易雲信傳送簡訊 //http://dev.netease.im/docs?doc=server&#傳送模板簡訊 function yx_se

即時通訊推送保障及網路優化詳解(三):如何在弱環境下優化大資料傳輸

對於移動 APP 來說,IM 功能正變得越來越重要,它能夠建立起人與人之間的連線。社交類產品中,使用者與使用者之間的溝通可以產生出更好的使用者粘性。在複雜的 Android 生態環境下,多種因素都會造成訊息推送不能及時達到客戶端。另外,不穩定的行動網路也給資料傳輸的速率和可靠

-驗證碼簡訊,通知類簡訊的使用

簡訊驗證碼是網站必不可少的,基本每個公司都會用到,之前用的簡訊驗證碼是互易無線的,現在新公司又使用了網易雲信的簡訊驗證, 這些平臺的使用基本都類似,都是基於curl請求 這次我就記錄下我對網易雲信驗證碼的使用過程 一:註冊網易雲信,獲取appkey和appsert 設

Java呼叫的簡訊介面程式碼

package yunxintest; import java.io.*; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.URL; import