Compare commits

..

3 Commits

Author SHA1 Message Date
zhangyazhou
51371ab2cf 添加js 注册 2022-12-11 20:29:16 +08:00
zhangyazhou
b9078f8789 修改默认网址 2022-12-10 17:08:52 +08:00
zhangyazhou
25bc5f966f add idea folder to gitignore 2022-12-08 09:51:15 +08:00
3 changed files with 64 additions and 2 deletions

1
.gitignore vendored
View File

@@ -111,3 +111,4 @@ _UpgradeReport_Files/
Backup*/
UpgradeLog*.XML
/.vs
.idea/

View File

@@ -65,7 +65,7 @@
</Grid>
<Border Grid.Row="1" BorderBrush="Gray" BorderThickness="0,1">
<wpf:ChromiumWebBrowser x:Name="Browser"
Address="https://www.google.com">
Address="https://blog.devwiki.net">
<behaviors:Interaction.Behaviors>
<behaviours:HoverLinkBehaviour x:Name="HoverLinkBehaviour" />
</behaviors:Interaction.Behaviors>

View File

@@ -1,4 +1,12 @@
using System.Windows;
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Input;
using CefSharp.Event;
using CefSharp.JavascriptBinding;
using CefSharp.Wpf;
using CefSharp.Wpf.Experimental;
using CefSharp.Wpf.Internals;
namespace CefSharp.MinimalExample.Wpf
{
@@ -7,8 +15,23 @@ namespace CefSharp.MinimalExample.Wpf
public MainWindow()
{
InitializeComponent();
Browser.BrowserSettings.Javascript = CefState.Enabled;
Browser.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true;
Browser.FrameLoadStart += BrowserOnFrameLoadStart;
Browser.FrameLoadEnd += BrowserOnFrameLoadEnd;
Browser.JavascriptObjectRepository.Register("script", new Script(), false, BindingOptions.DefaultBinder);
// Browser.JavascriptObjectRepository.ResolveObject += JavascriptObjectRepositoryOnResolveObject;
Browser.WpfKeyboardHandler = new WebBrowserWpfKeyboardHandler(Browser);
}
private void JavascriptObjectRepositoryOnResolveObject(object sender, JavascriptBindingEventArgs e)
{
var repo = e.ObjectRepository;
if (e.ObjectName == "script")
{
repo.NameConverter = new CamelCaseJavascriptNameConverter();
repo.Register("script", new Script(), isAsync: true, options: BindingOptions.DefaultBinder);
}
}
private void BrowserOnFrameLoadEnd(object sender, FrameLoadEndEventArgs e)
@@ -65,5 +88,43 @@ namespace CefSharp.MinimalExample.Wpf
JsResultTb.Text = "js is empty!";
}
}
public string GetWindowName()
{
return "MainWindow";
}
public void printLog(string log)
{
Console.WriteLine($"printLog:{log}");
}
}
public class WebBrowserWpfKeyboardHandler : WpfImeKeyboardHandler
{
public WebBrowserWpfKeyboardHandler(ChromiumWebBrowser owner) : base(owner)
{
}
public override void HandleKeyPress(KeyEventArgs e)
{
base.HandleKeyPress(e);
if (e.Key == Key.F12)
{
owner.ShowDevTools();
}
}
}
public class Script
{
public string GetWindowName()
{
return "MainWindow";
}
public void PrintLog(string log)
{
Console.WriteLine($"H5 log:{log}");
}
}
}