From 9d3d08ba960fc739498b0648d57eaf2c50a40fd1 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 17 六月 2020 19:17:54 +0800 Subject: [PATCH] '登录' --- WindowsFormsApp1/TBLogin.cs | 123 ++++++++++++++++++++++++++--------------- 1 files changed, 78 insertions(+), 45 deletions(-) diff --git a/WindowsFormsApp1/TBLogin.cs b/WindowsFormsApp1/TBLogin.cs index 2c5c727..f968a50 100644 --- a/WindowsFormsApp1/TBLogin.cs +++ b/WindowsFormsApp1/TBLogin.cs @@ -15,18 +15,29 @@ using CefSharp.WinForms; using WindowsFormsApp1.utils.tb; using static System.Collections.Specialized.NameObjectCollectionBase; +using WindowsFormsApp1.entity.tb; +using WindowsFormsApp1.utils; namespace WindowsFormsApp1 { + + public delegate void TBLoginSuccessDelegate(); public partial class TBLogin : Form { public ChromiumWebBrowser browser; private int position; + private bool hasShown=false;//鏄惁宸茬粡灞曠ず杩� + + public bool HasShown { + get { return this.hasShown; } + } + private void init() { InitializeComponent(); - initBrowser(); + InitBrowser(); + this.timer1.Start(); } public TBLogin() @@ -40,7 +51,16 @@ //this.Visible = show; if (!show) { - this.Visible = false; + //鍑嗗瑕佸埛鏂扮殑閾炬帴 + if (this.Visible) { + browser.Load("https://m.tb.cn/h.VN61jro?sm=9ed9c4"); + this.Visible = false; + hasShown = true; + if (this.loginSuccess != null) + this.loginSuccess(); + } + + } else { browser.Reload(); @@ -48,44 +68,21 @@ } - public void changeShow() { - int i = 0; - while (true) - { - Thread.Sleep(10000); - i++; - if (i == 1) - { - this.BeginInvoke(new ChangeShow(setShow), false); - } - else - { - this.BeginInvoke(new ChangeShow(setShow), true); - } - } - } - - - public TBLogin(int position) + public TBLogin(int position ) { this.position = position; init(); - Thread th = new Thread(changeShow); - th.Start(); - - this.Visible = false; - } - private void initBrowser() + private TBLoginSuccessDelegate loginSuccess; + public void SetTBLoginSuccess(TBLoginSuccessDelegate loginSuccess) { + this.loginSuccess = loginSuccess; + } + + private void InitBrowser() { - - string url = "http://login.taobao.com/member/login.jhtml?style=mini&newMini2=true&redirectURL=https%3a%2f%2fm.tb.cn%2fh.VOj5T1G%3fsm%3d7d686c&full_redirect=true&disableQuickLogin=true"; - - url = "https://m.tb.cn/h.VN61jro?sm=9ed9c4"; - var setting = new RequestContextSettings() { CachePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "BKZ\\Cache_tb_" + position), @@ -95,25 +92,61 @@ var context = new RequestContext(setting); var cookieManager = context.GetCookieManager(null); browser = new ChromiumWebBrowser(url, context); - browser.RequestHandler = new TBLoginRequestHandler("https://h5api.m.tmall.com/h5/mtop.tmall.kangaroo.core.service.route.pagerecommendservice/1.0/?", new TBLoginCallBack(this)); + TBCookieDelegate tbCookieDelegate = setCookies; + + browser.RequestHandler = new TBLoginRequestHandler("https://h5api.m.tmall.com/h5/mtop.tmall.kangaroo.core.service.route.aldlampservicefixedres/1.0/?", tbCookieDelegate); + + this.Controls.Clear(); this.Controls.Add(browser); browser.Dock = DockStyle.Fill; - } - class TBLoginCallBack : IGetTBCookieListener - { - private Form form; - public TBLoginCallBack(Form form) - { - this.form = form; - } - public void onSuccess(Dictionary<String, String> cookiesMap, String cookies) - { + public void ReLogin() { + this.Visible = true; + InitBrowser(); + } - //this.form.Visible = false; - //this.form.Close(); + + + //鍒锋柊Cookie + public void RefeshCookie() {//鐧诲綍鏄惁鏈夋晥 + if (TBCookieUtil.IsLoginValid(position)) + { + Console.WriteLine(position + ":鍒锋柊Cookie"); + String url = "https://m.tb.cn/h.VN61jro?sm=9ed9c4"; + CefSharp.WebBrowserExtensions.Reload(browser, true); + } + } + + + private void setCookies(Dictionary<String, String> cookiesMap, String cookies,String url) { + + if (!Constant.sdljBaseUrl.ContainsKey(position) || Constant.sdljBaseUrl[position] == null) { + Constant.sdljBaseUrl.Add(position, url); + } + if (TBCookieUtil.updateCookie(position, cookies)) { + if (this.Visible == true && !this.IsDisposed) + { + this.BeginInvoke(new ChangeShow(setShow), false); + } + } + } + + private void TBLogin_FormClosed(object sender, FormClosedEventArgs e) + { + if(Login.loginContainer.ContainsKey(position)){ + Login.loginContainer.Remove(position); + } + } + + private void timer1_Tick(object sender, EventArgs e) + { + if (this.Visible == false) + { + Console.WriteLine(position + ":鍒锋柊Cookie"); + String url = "https://m.tb.cn/h.VN61jro?sm=9ed9c4"; + browser.Load(url); } } } -- Gitblit v1.8.0