Browse Source

增加地址栏

master
С·æ 4 years ago
parent
commit
12821a1666
  1. 4
      客户端/齐越慧眼/齐越慧眼/ApiHelper.cs
  2. 2
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml
  3. 6
      客户端/齐越慧眼/齐越慧眼/MainWindow.xaml.cs
  4. 29
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml
  5. 107
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs
  6. 42
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerTabPanelControl.xaml
  7. 58
      客户端/齐越慧眼/齐越慧眼/UserControls/BrowerTabPanelControl.xaml.cs
  8. 15
      客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs

4
客户端/齐越慧眼/齐越慧眼/ApiHelper.cs

@ -10,8 +10,8 @@ namespace 齐越慧眼
{
public class ApiHelper
{
public static string ApiBase { get; set; } = "http://localhost:5000";
//public static string ApiBase { get; set; } = "http://hyapi.qiyue666.com";
//public static string ApiBase { get; set; } = "http://localhost:5000";
public static string ApiBase { get; set; } = "http://hyapi.qiyue666.com";
public static string JwtToken { get; set; }

2
客户端/齐越慧眼/齐越慧眼/MainWindow.xaml

@ -22,7 +22,7 @@
<uc:ItemControl></uc:ItemControl>
</hc:TabItem>
<hc:TabItem Header="浏览器">
<uc:BrowerControl x:Name="brower"></uc:BrowerControl>
<uc:BrowerTabPanelControl x:Name="brower"></uc:BrowerTabPanelControl>
</hc:TabItem>
</hc:TabControl>
</Border>

6
客户端/齐越慧眼/齐越慧眼/MainWindow.xaml.cs

@ -49,16 +49,16 @@ namespace 齐越慧眼
tab.SelectedIndex = 2;
switch (type) {
case 0:
brower.web.Load($"https://s.taobao.com/search?q={keyWord}&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index");
brower.NewTab($"https://s.taobao.com/search?q={keyWord}&imgfile=&commend=all&ssid=s5-e&search_type=item&sourceId=tb.index");
brower.tbRb.IsChecked = true;
break;
case 1:
brower.web.Load($"https://search.jd.com/Search?keyword={keyWord}&enc=utf-8");
brower.NewTab($"https://search.jd.com/Search?keyword={keyWord}&enc=utf-8");
brower.jdRb.IsChecked = true;
break;
case 2:
keyWord = System.Web.HttpUtility.UrlEncode(keyWord, Encoding.GetEncoding("gb2312"));
brower.web.Load($"https://s.1688.com/selloffer/offer_search.htm?keywords={keyWord}");
brower.NewTab($"https://s.1688.com/selloffer/offer_search.htm?keywords={keyWord}");
brower.albbRb.IsChecked = true;
break;
}

29
客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml

@ -6,33 +6,10 @@
xmlns:local="clr-namespace:齐越慧眼.UserControls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<Style TargetType="RadioButton">
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Border Padding="15 5" x:Name="border" BorderBrush="#8080FF" Background="Transparent">
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="border" Property="BorderThickness" Value="0 0 0 2"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="0 10 0 10">
<RadioButton Content="淘宝" IsChecked="True" x:Name="tbRb" Click="tbRb_Click" GroupName="rbtab"></RadioButton>
<RadioButton Content="京东" x:Name="jdRb" Click="jdRb_Click" GroupName="rbtab"></RadioButton>
<RadioButton Content="阿里巴巴" x:Name="albbRb" Click="albbRb_Click" GroupName="rbtab"></RadioButton>
</StackPanel>
<Grid x:Name="grid" DockPanel.Dock="Bottom">
<TextBox x:Name="txtUrl" DockPanel.Dock="Top" Keyboard.KeyUp="txtUrl_KeyUp"></TextBox>
<Grid x:Name="grid" DockPanel.Dock="Bottom" Margin="0 10 0 0">
</Grid>
</DockPanel>
</UserControl>

107
客户端/齐越慧眼/齐越慧眼/UserControls/BrowerControl.xaml.cs

@ -17,13 +17,13 @@ namespace 齐越慧眼.UserControls
/// </summary>
public partial class BrowerControl : UserControl
{
public static BrowerControl Main = null;
public HandyControl.Controls.TabItem Tab { get; set; }
public ExtChromiumBrowser web;
public BrowerControl()
public BrowerControl(string url, HandyControl.Controls.TabItem tabItem)
{
InitializeComponent();
web = new ExtChromiumBrowser("https://www.taobao.com")
Tab = tabItem;
web = new ExtChromiumBrowser(url)
{
BrowserSettings =
{
@ -38,7 +38,7 @@ namespace 齐越慧眼.UserControls
//RequestHandler =new MyRequestHandler()
};
MyResourceRequestHandlerFactory myResourceRequestHandlerFactory = new MyResourceRequestHandlerFactory();
MyResourceRequestHandlerFactory myResourceRequestHandlerFactory = new MyResourceRequestHandlerFactory(this);
myResourceRequestHandlerFactory.Handlers.TryAdd("test",null);
web.ResourceRequestHandlerFactory = myResourceRequestHandlerFactory;
@ -46,12 +46,34 @@ namespace 齐越慧眼.UserControls
grid.Children.Add(web);
Loaded += BrowerControl_Loaded;
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder);
Main = this;
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
var cjs = new CefAsyncJS();
cjs.Brower = this;
web.JavascriptObjectRepository.Register("hyCoreModel", cjs, BindingOptions.DefaultBinder);
web.StartNewWindow += Web_StartNewWindow;
web.TitleChanged += Web_TitleChanged;
web.AddressChanged += Web_AddressChanged;
}
private void Web_AddressChanged(object sender, DependencyPropertyChangedEventArgs e)
{
Application.Current.Dispatcher.Invoke(()=> {
txtUrl.Text = e.NewValue.ToString();
});
}
public void Exit()
{
web.Dispose();
}
private void Web_TitleChanged(object sender, DependencyPropertyChangedEventArgs e)
{
Application.Current.Dispatcher.Invoke(() =>
{
Tab.Header = e.NewValue;
});
}
int nowPatlom = 0;
@ -87,7 +109,8 @@ namespace 齐越慧眼.UserControls
private void Web_StartNewWindow(object sender, NewWindowEventArgs e)
{
web.Load(e.Url);
MainWindow.Main.brower.NewTab(e.Url);
//web.Load(e.Url);
}
private void BrowerControl_Loaded(object sender, RoutedEventArgs e)
@ -269,7 +292,7 @@ namespace 齐越慧眼.UserControls
if (item.IsCompeting)
{
if ((int)BrowerControl.Main.DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateYellow').length").result <= 0)
if ((int)DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateYellow').length").result <= 0)
{
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
}
@ -372,7 +395,7 @@ namespace 齐越慧眼.UserControls
if (item.IsCompeting)
{
//<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>
if ((int)BrowerControl.Main.DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateYellow').length").result <= 0)
if ((int)DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.stateYellow').length").result <= 0)
{
DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{item.GoodsId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
}
@ -762,33 +785,23 @@ namespace 齐越慧眼.UserControls
return (result.Success,result.Result);
}
private void tbRb_Click(object sender, RoutedEventArgs e)
{
web.Load("https://www.taobao.com/");
}
private void jdRb_Click(object sender, RoutedEventArgs e)
private void txtUrl_KeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
web.Load("https://www.jd.com/");
}
private void albbRb_Click(object sender, RoutedEventArgs e)
{
web.Load("https://www.1688.com/?spm=a26352.13672862.searchbox.1.27bf6ae2slybzR");
if (e.Key == System.Windows.Input.Key.Enter)
{
web.Load(txtUrl.Text);
}
}
}
public class CefAsyncJS
{
public BrowerControl Brower { get; set; }
public string getTest()
{
return "";
}
public void onAjaxHook(string url)
{
MainWindow.Main.brower.OnUrlEnd(url);
Brower.OnUrlEnd(url);
}
public bool settaobaoItemData(dynamic data)
@ -824,29 +837,29 @@ namespace 齐越慧眼.UserControls
//判断是否团队过滤
if (type == 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")");
}
if (type == 3)
{
int row = (int)BrowerControl.Main.DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').find('.stateYellow').length").result;
int row = (int)Brower.DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').find('.stateYellow').length").result;
if (row < 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
}
}
if (type == 0)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")");
}
if (type == 2)
{
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""popBg"")");
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.myitemState').addClass(""popBg"")");
}
BrowerControl.Main.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
Brower.DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{itemId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")");
}
@ -890,29 +903,29 @@ namespace 齐越慧眼.UserControls
//判断是否团队过滤
if (type == 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
}
if (type == 3)
{
int row = (int)BrowerControl.Main.DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').find('.stateYellow').length").result;
int row = (int)Brower.DoJavaScript(@$"return $($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').find('.stateYellow').length").result;
if (row < 1)
{
BrowerControl.Main.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')");
}
}
if (type == 0)
{
BrowerControl.Main.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
}
if (type == 2)
{
BrowerControl.Main.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
}
BrowerControl.Main.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
Brower.DoJavaScript($@"$($('div#J_goodsList li[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
}
@ -948,10 +961,10 @@ namespace 齐越慧眼.UserControls
if (result.isOk)
{
int row = (int)BrowerControl.Main.DoJavaScript(@$"return $($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').find('.stateYellow').length").result;
int row = (int)Brower.DoJavaScript(@$"return $($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').find('.stateYellow').length").result;
if (row < 1)
{
BrowerControl.Main.DoJavaScript($@"$($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">合</div>')");
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-shopId=""{shopId}""]')).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">合</div>')");
}
}
@ -977,20 +990,20 @@ namespace 齐越慧眼.UserControls
//判断是否团队过滤
if (type == 1)
{
BrowerControl.Main.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""falseBg"")");
}
if (type == 0)
{
BrowerControl.Main.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""trueBg"")");
}
if (type == 2)
{
BrowerControl.Main.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.myitemState').addClass(""popBg"")");
}
BrowerControl.Main.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
Brower.DoJavaScript($@"$($('ul#sm-offer-list div[data-sku=""{itemId}""]')).find('.stateGraydiv').addClass(""divshow"")");
}
WpfNoticeMsg.NoticeMessage.Show(result.msg, "提示");
return result.isOk;

42
客户端/齐越慧眼/齐越慧眼/UserControls/BrowerTabPanelControl.xaml

@ -0,0 +1,42 @@
<UserControl x:Class="齐越慧眼.UserControls.BrowerTabPanelControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:local="clr-namespace:齐越慧眼.UserControls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<UserControl.Resources>
<Style TargetType="RadioButton">
<Setter Property="Cursor" Value="Hand"></Setter>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="RadioButton">
<Border Padding="15 5" x:Name="border" BorderBrush="#8080FF" Background="Transparent">
<TextBlock Text="{TemplateBinding Content}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter TargetName="border" Property="BorderThickness" Value="0 0 0 2"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</UserControl.Resources>
<DockPanel>
<StackPanel Orientation="Horizontal" DockPanel.Dock="Top" Margin="0 10 0 10">
<RadioButton Content="淘宝" IsChecked="True" x:Name="tbRb" Click="tbRb_Click" GroupName="rbtab"></RadioButton>
<RadioButton Content="京东" x:Name="jdRb" Click="jdRb_Click" GroupName="rbtab"></RadioButton>
<RadioButton Content="阿里巴巴" x:Name="albbRb" Click="albbRb_Click" GroupName="rbtab"></RadioButton>
</StackPanel>
<hc:TabControl IsAnimationEnabled="True" IsTabFillEnabled="False" Name="tab" ShowCloseButton="True" DockPanel.Dock="Bottom">
</hc:TabControl>
</DockPanel>
</UserControl>

58
客户端/齐越慧眼/齐越慧眼/UserControls/BrowerTabPanelControl.xaml.cs

@ -0,0 +1,58 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace .UserControls
{
/// <summary>
/// BrowerTabPanelControl.xaml 的交互逻辑
/// </summary>
public partial class BrowerTabPanelControl : UserControl
{
public BrowerTabPanelControl()
{
InitializeComponent();
}
public void NewTab(string url)
{
var item = new HandyControl.Controls.TabItem() { IsSelected = true };
item.Closed += (e, s) => {
var obj = e as HandyControl.Controls.TabItem;
var brower= obj.Content as BrowerControl;
brower.Exit();
};
BrowerControl browerControl = new BrowerControl(url,item);
item.Content = browerControl;
tab.Items.Add(item);
}
private void tbRb_Click(object sender, RoutedEventArgs e)
{
NewTab("https://www.taobao.com/");
//web.Load("https://www.taobao.com/");
}
private void jdRb_Click(object sender, RoutedEventArgs e)
{
NewTab("https://www.jd.com/");
//web.Load("https://www.jd.com/");
}
private void albbRb_Click(object sender, RoutedEventArgs e)
{
NewTab("https://www.1688.com/?spm=a26352.13672862.searchbox.1.27bf6ae2slybzR");
//web.Load("https://www.1688.com/?spm=a26352.13672862.searchbox.1.27bf6ae2slybzR");
}
}
}

15
客户端/齐越慧眼/齐越慧眼/cefhelper/CefRequestHandler.cs

@ -37,17 +37,28 @@ namespace 齐越慧眼.cefhelper
public class MyResourceRequestHandlerFactory : ResourceRequestHandlerFactory
{
public MyResourceRequestHandlerFactory(BrowerControl brower)
{
Brower = brower;
}
public BrowerControl Brower;
protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
{
return new MyResourceRequestHandler();
return new MyResourceRequestHandler(Brower);
}
}
public class MyResourceRequestHandler : ResourceRequestHandler
{
public MyResourceRequestHandler(BrowerControl brower)
{
Brower = brower;
}
public BrowerControl Brower;
protected override bool OnResourceResponse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
{
MainWindow.Main.brower.OnUrlEnd(request.Url);
Brower.OnUrlEnd(request.Url);
return base.OnResourceResponse(chromiumWebBrowser, browser, frame, request, response);
}
}

Loading…
Cancel
Save