公司的同事离职了,接下来的日子可能会忙碌,能完善DEMO的时间也会少了,因此,把做的简易DEMO整体先记录一下,等后续不断的完善。

参考两位大神的日志:WEB版微信协议部分功能分析【完全开源】微信客户端.NET版

尤其是周见智大神的DEMO,因为好多和微信的服务端交互,都借鉴了大神的源码,帮助巨大,可以说我相当于做了一个翻版,只是用WPF开发的而已,外观上不同,但是实际交互上是差不多的。

微信分为两个部分,一个是登录,一个是主体,基于此,WPF也主要是这两个窗体来实现。

1、登录部分分为二维码和获取用户头像两个页面(因为是给予WEB的,所以没有客户端的登录按钮,只能通过扫码来登录)

WPF 微信 MVVMWPF 微信 MVVM

在程序启动以后,先通过请求获取到二维码,然后,在启动一个新的线程,不断的循环检索登录状态。

private void LoopLoginCheck()
        {
            object login_result = null;
            //循环判断手机扫描二维码结果
            while (true)
            {
                login_result = ls.LoginCheck();
                //已扫描 未登录
                if (login_result is ImageSource)
                {
                    HeadImageSource = login_result as ImageSource;
                    //广播,通知到LoginUC页面,切换
                    Messenger.Default.Send<object>(null, "ShowLoginInfoUC");
                }
                //已完成登录
                if (login_result is string)
                {
                    //访问登录跳转URL
                    ls.GetSidUid(login_result as string);
                                     
                    //广播,隐藏登录页面,打开主页面
                    Messenger.Default.Send<object>(null, "HideLoginUC");

                    thread.Abort();
                    break;
                }
                ////超时
                if (login_result is int)
                {
                    //QRCodeImageSource = ls.GetQRCode();
                    //返回二维码页面
                    Messenger.Default.Send<object>(null, "ShowQRCodeUC");
                }
            }
        }
循环检索状态

相关文章:

  • 2021-06-30
  • 2021-06-22
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-26
  • 2021-11-01
  • 2021-10-15
  • 2021-09-02
  • 2022-12-23
相关资源
相似解决方案