研究wechat消息机制遇到的问题

最近在研究微信的消息机制,因为微信消息种类比较多,先从最简单的文字研究起,通过网上各路大神的分析,我直接就定位到CMessageMgr类,

发送消息 - (void)AddMsg:(id)arg1 MsgWrap:(id)arg2;'

接受消息或发送消息 - (void)AsyncOnModMsg:(id)arg1 MsgWrap:(id)arg2;

通过简单的尝试,知道了消息的关键在于arg2,我验证的时候通过log或cycript来进行调试的,arg2的类型是CMessageWrap,然后打印arg2的参数,了解到关键性参数作用后,就试着尝试自己new一个,代码如下

`id wrap = [NSClassFromString(@“CMessageWrap”) alloc];
((id(*)(id,SEL,id))objc_msgSend)(wrap, @selector(initWithMsgType:),@1);

[wrap setValue:m_nsFromUsr forKey:@“m_nsToUsr”];

[wrap setValue:m_nsFromUsr forKey:@“m_nsFromUsr”];

[wrap setValue:@“测试” forKey:@“m_nsContent”];
((void (*)(id, SEL,id,id))objc_msgSend)(self,@selector(AddMsg:MsgWrap:),m_nsFromUsr,wrap);`自己给自己成功发送消息,成功后还是比较振奋人心的,接着往下观察,试了其他的消息类型,觉得还是从简单入手,通过网上资料得到微信各个消息类型type,决定从49开始研究,49对应的是分享链接,按我自己所想,这个应该跟文字消息类似,应该可以手到擒来,

先随便打开一个网页,分享给自己,然后观察log,把所有可用参数记录下来,在new一个CMessageWrap

因为代码比较多,所有直接贴图

content是直接复制之前分享链接的conten,据我观察还有个data,猜测是分享链接的图片,就在微信里面随便找了个图片代替,其他参数和之前分享链接的参数一模一样,运行后却发现在手机本地,这条消息是已链接的方式发送成功,然后再电脑端接受的消息却是content里面的消息,以文字的形式显示出来,

求各路大神指点下,到底是哪里不对,还是方向错了,不胜感激!!!

这句话表达了啥意思?

就是在发送方(手机)看到的是链接

在电脑端看到的却是文字

求解,到底是方向错了,还是某些关键性参数忽略了

方向错了,分享链接的本质是一个链接,而不是这么一大段文字。可能是由一个title,一个desc,若干个url构成的,朝这个方向看看

多谢狗神指点迷津,我在看看 :smile:

哈哈哈,一看就是没手动实现过分享功能的