公司的同事離職了,接下來(lái)的日子可能會(huì)忙碌,能完善DEMO的時(shí)間也會(huì)少了,因此,把做的簡(jiǎn)易DEMO整體先記錄一下,等后續(xù)不斷的完善。

參考兩位大神的日志:WEB版微信協(xié)議部分功能分析、【完全開(kāi)源】微信客戶(hù)端.NET版

尤其是周見(jiàn)智大神的DEMO,因?yàn)楹枚嗪臀⑿诺姆?wù)端交互,都借鑒了大神的源碼,幫助巨大,可以說(shuō)我相當(dāng)于做了一個(gè)翻版,只是用WPF開(kāi)發(fā)的而已,外觀上不同,但是實(shí)際交互上是差不多的。

微信分為兩個(gè)部分,一個(gè)是登錄,一個(gè)是主體,基于此,WPF也主要是這兩個(gè)窗體來(lái)實(shí)現(xiàn)。

一、登錄模塊

1、登錄部分分為二維碼和獲取用戶(hù)頭像兩個(gè)頁(yè)面(因?yàn)槭墙o予WEB的,所以沒(méi)有客戶(hù)端的登錄按鈕,只能通過(guò)掃碼來(lái)登錄)

在程序啟動(dòng)以后,先通過(guò)請(qǐng)求獲取到二維碼,然后,在啟動(dòng)一個(gè)新的線(xiàn)程,不斷的循環(huán)檢索登錄狀態(tài)。

 循環(huán)檢索狀態(tài)

因?yàn)槭荕VVM,所以,需要用廣播來(lái)進(jìn)行操作頁(yè)面的切換,即填充到登錄窗體中間的控件是二維碼,還是頭像。

2、大家可以看到我上面的截圖部分包含了一部分的背景,這個(gè)是用Snagit(推薦這個(gè)截圖工具,很好用)截圖時(shí),自動(dòng)截出的