using System.Web; using Yw; namespace HStation.WinFrmUI { public partial class WechatBindingCtrl : DevExpress.XtraEditors.XtraUserControl { public WechatBindingCtrl() { InitializeComponent(); } /// /// 绑定事件 /// public event Action LoginStartEvent; /// /// 登录取消事件 /// public event Action LoginCancelEvent; private bool _isInitialized = false;//初始化 private const string _template = "hzkw_wx_template";//微信登录模板 /// /// 初始化 /// public async void Initial() { var loginUrl = await BLLFactory.Instance.GetLoginUrl(_template); await this.webView21.EnsureCoreWebView2Async(); this.webView21.Source = new Uri(loginUrl); this.webView21.CoreWebView2.SourceChanged += CoreWebView2_SourceChanged; } //源改变 private void CoreWebView2_SourceChanged(object? sender, Microsoft.Web.WebView2.Core.CoreWebView2SourceChangedEventArgs e) { var collection = HttpUtility.ParseQueryString(this.webView21.Source.Query); var code = collection["code"]; var state = collection["state"]; if (!string.IsNullOrEmpty(code)) { LoginStartEvent?.Invoke(code); } } } }