winform集成cefSharp,与页面进行交互
/// <summary>
/// 为了使网页能够与winForm交互 将 com 的可访问性设置为 true
/// </summary>
[System.Runtime.InteropServices.ComVisible(true)]
public partial class Form1 : Form
{
/// <summary>
/// 声明变量
/// </summary>
private CefSharp.CefSettings _settings;
ChromiumWebBrowser _browser; public Form1()
{
try
{
InitializeComponent(); //初始化cefSharp
AppLog.Info("cefSharp init ...");
_settings = new CefSharp.CefSettings();
CefSharp.Cef.Initialize(_settings); //下面设置,减少白屏的发生,此为cefSharp的bug
if (!_settings.MultiThreadedMessageLoop)
{
Application.Idle += (sender, e) => { Cef.DoMessageLoopWork(); };
}
AppLog.Info("cefSharp init OK"); //设置窗口最大化,最顶端显示
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
this.TopMost = true; }
catch (Exception ex)
{
AppLog.Error(ex.Message);
}
} private void Form1_Load(object sender, EventArgs e)
{
try
{
_browser = new ChromiumWebBrowser("../index.html");
_browser.RegisterJsObject("cefSharpBrower", new ScriptCallbackManager(), false); this.Controls.Add(_browser); }
catch (Exception ex)
{
AppLog.Error(ex.Message);
}
} /// <summary>
/// js调用方法类
/// </summary>
[System.Runtime.InteropServices.ComVisible(true)]
class ScriptCallbackManager
{
/// <summary>
/// 关闭窗体
/// </summary>
public void CloseWindow()
{
//退出程序,结束进程
Process.GetCurrentProcess().Kill();
} //方法1
public void Func1()
{
//具体实现
...
}
}
添加对cefSharp的引用
using CefSharp;
using CefSharp.WinForms;
页面的调用和交互
<!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<title></title>
<style>
body {
background-color: cadetblue
}
</style>
</head>
<body>
<div>
<input value="关闭winform" type="button" id="btn_close" />
<input value="Func1" type="button" id="btn_calc" />
</div>
<script type="text/javascript" src="https://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript"> //关闭程序
$(function () {
$("#btn_close").click(function () {
cefSharpBrower.CloseWindow();
});
}); $(function () {
$("#btn_calc").click(function () {
cefSharpBrower.Func1();
});
}); </script>
</body>
</html>
winform集成cefSharp,与页面进行交互的更多相关文章
- Winform下CefSharp的引用、配置、实例与报错排除(源码)
Winform下CefSharp的引用.配置.实例与报错排除 本文详细介绍了CefSharp在vs2013..net4.0环境下,创建Winfrom项目.引用CefSharp的方法,演示了winfro ...
- winform窗体嵌套HTML页面,开发出炫彩桌面程序
一:CEF全称Chromium Embedded Framework,是一个基于Google Chromium 的开源项目.Google Chromium项目主要是为Google Chrome应用开发 ...
- ScrollMagic – 酷毙了!超炫的页面滚动交互效果
ScrollMagic 是一款 jQuery 插件,它让你可以像使用进度条一样使用滚动条.如果你想在特定的滚动位置开始一个动画,并且让动画同步滚动条的动作,或者把元素粘在一个特定的滚动位置,那么这款插 ...
- JavaWeb学习总结-05 Servlet 与页面的交互(02)
一 模拟请求数据 为了测试方便,把请求 json,txt, xml,html格式的文件放到了公网上面,可以通过以下地址请求: http://wx.glab.cn/xpxiaowu4java/json/ ...
- 安卓Native和H5页面进行交互
安卓Native和H5页面进行交互 1.H5页面调用安卓Native界面 1)通过给webView添加JsInterface,安卓提供接口,让H5来进行调用 a)安卓写一个类,里面的方法需要用通 ...
- javaweb 与jsp页面的交互流程 (初次接触时写)
javaweb 与jsp页面的交互流程 javaweb项目目录 1. javaweb项目的一般目录: 2. jsp 页面一般情况下放在 top(前台页面) back(后台页面) 3. 后台代码 放在s ...
- 1.PHP与Web页面的交互
一.概览: PHP是一种专门用于Web开发的服务器端脚本语言.从这个描述可以知道,PHP要打交道的对象主要有服务器(Server),和基于Web的HTML(超文本标识语言).使用PHP处理Web应用时 ...
- 动态include是通过servlet进行页面信息交互的
动态include是通过servlet进行页面信息交互的
- winform+CefSharp 实现和js交互
1:窗体加载的时候添加 webBrowser.RegisterJsObject("getuserName", new _Event()); 2:注册C#方法为js方法 /// // ...
随机推荐
- Java连载68-数组的拷贝、二维数组
一.数组的拷贝 函数arraycopy(),参数为:源数组.源数组的开始下标.目标数组.目标数组的开始下标.拷贝长度 package com.bjpowernode.java_learning; ...
- DOM基础1
Document Object Model 文档对象模型 1.改内容: innerHTML 例:div1.innerHTML = "我能干<br />什么"; ...
- php中date('Y/m/d',time())显示不对
一. 时间不对是因为没设置时区 在xampp/php/php.ini中ctrl + f 查找date.timezone 该行默认注释,去掉 ; 修改为 date.timezone = PRC 二 上述 ...
- J. Cola
J. Cola time limit per test 4.0 s memory limit per test 64 MB input standard input output standard o ...
- 如何修改 Vmware vRealize Operations Manager Appliance root密码
开机后,按上下键,选择 中间那一项,在底部增加:init=/bin/bash 进入单用户模式后,输入命令:# passwd root #修改root密码,要输 ...
- Windows Server 2008 R2 ntoskrnl.exe 引起蓝屏故障,重新启动
前不久在HP ProLiant DL360 G6的服务器上面安装了Windows Server 2008 R2,系统一到晚上凌晨就出现蓝屏.重启现象,并且在 C:\Windows\Minidump 目 ...
- cf 398B. Painting The Wall
23333,还是不会..%%%http://hzwer.com/6276.html #include <bits/stdc++.h> #define LL long long #defin ...
- 第四篇:Vue的项目开发
安装Vue的脚手架cli环境 1)官网下载并安装node,附带npm https://nodejs.org/zh-cn/ node环境: 可以解释执行js语言 提供了npm应用商城,可以为node环境 ...
- servlet 之 servlet接口详解
package javax.servlet; //Tomcat源码版本:6.0.20 import java.io.IOException; public interface Servlet { ...
- 吴裕雄 Bootstrap 前端框架开发——Bootstrap 字体图标(Glyphicons):glyphicon glyphicon-edit
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name ...