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方法 /// // ...
随机推荐
- CI自带的文件上传及生成缩略图
/* * 文件上传 * @param $upload_path 文件上传路径 * @param $formpic 表单name属性名称 */ private function doUpload($up ...
- 026、Java中改变运算优先级
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 014.Oracle数据库,取本周第一天(星期一), 取本周最后一天(星期天)
/*取本周第一天(星期一),取本周最后一天(星期天)*/ SELECT trunc( SYSDATE, AS 星期一 , trunc( SYSDATE, AS 星期天 FROM dual; 效果如下: ...
- 016、MySQL取本年第一季度开始日期
#取第1季度开始日期 SELECT date_add( dy, INTERVAL ( ) MONTH ) dy FROM ( ) dy ) x ; 效果如下: 不忘初心,如果您认为这篇文章有价值,认同 ...
- 清除windows激活信息
1.管理员运行命令提示符 在命令提示符中输入 slmgr /upk---删除当前KMS密匙 出现"成功地卸载了产品密匙"后,继续依次执行下面两个命令 slmgr /ckms---此 ...
- NO2 pwd-touch-vim-vi-echo-重定向等命令
·查看网卡配置:cat/etc/sysconfig/network-scripts/ifcfg-eth0·改onboot=no:sed -i's#noboot=yes#g' /etc/sysconfi ...
- springboot - 在servlet中映射Errors 脱离spring mvc
应用不用Spring MVC, 采用ErrorPageRegistrar 接口能直接映射errors. 1.概览 2.java代码 1).MyAppServlet package com.ebc.se ...
- CentOS7安装Jenkins与配置
安装 将Jenkins存储库添加到yum repos,并从此安装Jenkins. sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenki ...
- Linux学习《第四章脚本》20200222
- .nerCore-RabbitMQDemo消息队列
1.定义:MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它们.MQ是消费- ...