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

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

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

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

一、登錄模塊

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

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

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

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

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