using System.Web;
|
using Yw;
|
|
namespace HStation.WinFrmUI
|
{
|
public partial class WechatBindingCtrl : DevExpress.XtraEditors.XtraUserControl
|
{
|
public WechatBindingCtrl()
|
{
|
InitializeComponent();
|
}
|
|
/// <summary>
|
/// 绑定事件
|
/// </summary>
|
public event Action<string> LoginStartEvent;
|
|
/// <summary>
|
/// 登录取消事件
|
/// </summary>
|
public event Action LoginCancelEvent;
|
|
private bool _isInitialized = false;//初始化
|
private const string _template = "hzkw_wx_template";//微信登录模板
|
|
/// <summary>
|
/// 初始化
|
/// </summary>
|
public async void Initial()
|
{
|
var loginUrl = await BLLFactory<Yw.BLL.ToolWechat>.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);
|
}
|
}
|
}
|
}
|