iOS逆向 微信消息界面分析

来源:互联网 发布:电子杂志制作软件下载 编辑:程序博客网 时间:2024/05/15 19:26

一、微信消息界面的结构

1.1 消息对应的Cell

微信消息界面对应的类名为:BaseMsgContentViewController,消息界面是采用TableView实现的,每种消息类型对应一种Cell。

文本消息:TextMessageCellView图片消息:ImageMessageCellView语音消息:VoiceMessageCellView位置消息:LocationMessageView红包消息:WCPayC2CMessageView名片消息:ShareCardMessageCellView消息发送时间:ChatTimeCellView

下图为文本消息cell的结构图 :

这里写图片描述

1.2 消息对应的Model

同样的,每种消息对应的Model也是不同的,每种消息对应一种model。

文本消息:TextMessageViewModel图片消息:ImageMessageViewModel语音消息:VoiceMessageViewModel位置消息:LocationMessageViewModel红包消息:WCPayC2CMessageViewModel名片消息:ShareCardMessageViewModel消息发送时间:ChatTimeViewModel

这几种消息model都继承于BaseMessageViewModel,而BaseMessageViewModel的父类为: BaseChatViewModel。我们来看下BaseChatViewModel里面有哪些有用的信息:

@interface BaseMessageViewModel : BaseChatViewModel <IMessageNodeStatusExt>{    CBaseContact *m_contact;    CMessageWrap *m_messageWrap;    struct CGSize m_contentViewSize;    long long m_orientation;    NSString *m_cpKeyForChatRoomMessage;    NSString *m_cpKeyForChatRoomDisplayName;    _Bool m_isChatRoomMessageUnsafe;    _Bool m_isChatRoomDisplayNameUnsafe;    _Bool m_isSender;    _Bool _isShowStatusView;    _Bool _highlighted;}

这里面有一个非常有用的对象CMessageWrap,这个对象封装了与消息有关的一些属性,我们再去探究一下CMessageWrap的头文件里面有些什么可用的信息,以下只例举几个常用的属性:

@interface CMessageWrap : MMObject{    NSString *m_nsFromUsr; //发送人    NSString *m_nsToUsr; //接收人    unsigned int m_uiMessageType; //消息类型    NSString *m_nsContent;  //消息内容    ......}
原创粉丝点击