From ebb81529d0d7d72e6c7fc437d94c436e6055d86a Mon Sep 17 00:00:00 2001 From: shanji <18996038927@163.com> Date: Fri, 1 Apr 2022 18:39:38 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E8=8E=B7=E5=8F=96=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/Order/OrderListViewModel.cs | 1 - BBWY.Client/Views/Order/GrabJDMibole.xaml | 5 +---- BBWY.Client/Views/Order/GrabJDMibole.xaml.cs | 16 ++++++++++++++++ BBWY.Client/WebView2Manager.cs | 15 ++++++--------- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs index edfce75a..09e6c6fc 100644 --- a/BBWY.Client/ViewModels/Order/OrderListViewModel.cs +++ b/BBWY.Client/ViewModels/Order/OrderListViewModel.cs @@ -251,7 +251,6 @@ namespace BBWY.Client.ViewModels var grab = new GrabJDMibole(order.Id); if (grab.ShowDialog() == true) plaintextMobile = grab.Tag.ToString(); - return; IsLoading = true; Task.Factory.StartNew(() => orderService.DecodeConsignee(order.Id, plaintextMobile)).ContinueWith(t => { diff --git a/BBWY.Client/Views/Order/GrabJDMibole.xaml b/BBWY.Client/Views/Order/GrabJDMibole.xaml index bc6bc2e1..9be90acf 100644 --- a/BBWY.Client/Views/Order/GrabJDMibole.xaml +++ b/BBWY.Client/Views/Order/GrabJDMibole.xaml @@ -8,9 +8,6 @@ WindowStartupLocation="CenterScreen" Title="GrabJDMibole" Height="350" Width="400"> - - - - + diff --git a/BBWY.Client/Views/Order/GrabJDMibole.xaml.cs b/BBWY.Client/Views/Order/GrabJDMibole.xaml.cs index cf0af770..51c819d2 100644 --- a/BBWY.Client/Views/Order/GrabJDMibole.xaml.cs +++ b/BBWY.Client/Views/Order/GrabJDMibole.xaml.cs @@ -4,6 +4,8 @@ using Microsoft.Web.WebView2.Wpf; using System; using System.Reflection; using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; using io = System.IO; namespace BBWY.Client.Views.Order @@ -16,6 +18,7 @@ namespace BBWY.Client.Views.Order private WebView2Manager w2m; //private Stopwatch sw; private string orderId; + private bool isNavigated; public GrabJDMibole(string orderId) { @@ -40,8 +43,12 @@ namespace BBWY.Client.Views.Order } grid.Children.Add(w2m.wb2); + if(w2m.IsInitializationCompleted) + txtMsg.Text = "Grabbing Mobile"; + w2m.CoreWebView2InitializationCompleted = (e) => { + isNavigated = true; w2m.wb2.CoreWebView2.Navigate($"https://neworder.shop.jd.com/order/orderDetail?orderId={orderId}"); }; w2m.OnNavigationCompleted = async (e) => @@ -55,6 +62,9 @@ namespace BBWY.Client.Views.Order else if (w2m.wb2.CoreWebView2.Source.StartsWith("https://neworder.shop.jd.com/order/orderDetail")) { //进入订单详情页面,触发点击查看手机号 + txtMsg.Text = "Grabbing Mobile"; + w2m.wb2.Width = 0.1; + w2m.wb2.Height = 0.1; var js = @"var mobileNode = document.getElementById('mobile'); mobileNode.addEventListener('DOMNodeInserted',function(e){ var m=mobileNode.innerText; window.chrome.webview.postMessage(m);}); document.getElementById('viewOrderMobile').click();"; @@ -68,6 +78,12 @@ namespace BBWY.Client.Views.Order this.DialogResult = true; this.Close(); }; + + if (w2m.IsInitializationCompleted && !isNavigated) + { + w2m.wb2.CoreWebView2.Navigate($"https://neworder.shop.jd.com/order/orderDetail?orderId={orderId}"); + isNavigated = true; + } } } } diff --git a/BBWY.Client/WebView2Manager.cs b/BBWY.Client/WebView2Manager.cs index 21483064..de5fb294 100644 --- a/BBWY.Client/WebView2Manager.cs +++ b/BBWY.Client/WebView2Manager.cs @@ -2,6 +2,7 @@ using Microsoft.Web.WebView2.Core; using Microsoft.Web.WebView2.Wpf; using System; +using System.Diagnostics; using System.Reflection; using io = System.IO; @@ -39,11 +40,10 @@ namespace BBWY.Client private void Wb2_CoreWebView2InitializationCompleted(object sender, CoreWebView2InitializationCompletedEventArgs e) { - isInitializationCompleted = true; CoreWebView2InitializationCompleted?.Invoke(e); + isInitializationCompleted = true; } - public void Close() { if (wb2 != null && wb2.CoreWebView2 != null) @@ -54,16 +54,13 @@ namespace BBWY.Client var udf = wb2.CoreWebView2.Environment.UserDataFolder; var wb2ProcessId = wb2.CoreWebView2.BrowserProcessId; wb2.Dispose(); - int timeout = 10; try { - while (System.Diagnostics.Process.GetProcessById(Convert.ToInt32(wb2ProcessId)) != null && timeout < 2000) - { - System.Threading.Thread.Sleep(10); - timeout += 10; - } + var wb2Process = Process.GetProcessById(Convert.ToInt32(wb2ProcessId)); + if (wb2Process != null) + wb2Process.Kill(); } - catch { } + catch (Exception ex) { Console.WriteLine(ex.Message); } io.Directory.Delete(udf, true); } }