• 大小: 31KB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: C#
  • 标签: Chrome  JS  

资源简介

winform 内嵌Google浏览器 Chrome 能与js前端页面交互

资源截图

代码片段和文件信息

using CefSharp.WinForms;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace GoogleChromeTest
{
    public partial class Form1 : Form
    {
        /// 
        /// Chromium浏览器实例
        /// 

        ChromiumWebBrowser WebBrowser;

        public Form1()
        {
            InitializeComponent();
            ///设置
            var setting = new CefSharp.CefSettings();
            setting.Locale = “zh-CN“;
            setting.CachePath = “CHBrowser/BrowserCache“;//缓存路径
            setting.AcceptLanguageList = “zh-CNzh;q=0.8“;//浏览器引擎的语言
            setting.LocalesDirPath = “CHBrowser/localeDir“;//日志
            setting.LogFile = “CHBrowser/LogData“;//日志文件
            setting.PersistSessionCookies = true;//
            setting.UserAgent = “Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/55.0.2883.87 Safari/537.36“;//浏览器内核
            setting.UserDataPath = “CHBrowser/userData“;//个人数据
            ///初始化
            CefSharp.Cef.Initialize(setting);
            WebBrowser = new ChromiumWebBrowser(“http://www.baidu.com“); //初始页面
            WebBrowser.RegisterJsobject(“jsObj“ new JsEvent() new CefSharp.BindingOptions() { CamelCasejavascriptNames = false }); //交互数据                                           
            WebBrowser.Dock = Dockstyle.Fill;//铺满                                                                  
            WebBrowser.Dock = Dockstyle.Fill;//设置停靠方式
            this.Controls.Add(WebBrowser);//加入窗体
        }

        private void Form1_Load(object sender EventArgs e)
        {

        }

        private void button1_Click(object sender EventArgs e)
        {
            WebBrowser.Load(textBox1.Text);//浏览网址
        }

        private async void button2_Click(object sender EventArgs e)
        {
            await WebBrowser.GetBrowser().Mainframe.EvaluatescriptAsync(“test_val=“ + new Random().Next().ToString(“F“)); //设置页面上js的test_val变量为随机数
            await WebBrowser.GetBrowser().Mainframe.EvaluatescriptAsync(“test()“);//运行页面上js的test方法

        }

        private async void button3_Click(object sender EventArgs e)
        {
            await WebBrowser.GetBrowser().Mainframe.EvaluatescriptAsync(“testArg(‘123‘‘我是NET‘ )“);//运行页面上js的testArg带参数的方法
        }
    }
    public class JsEvent
    {
        public string MessageText { get; set;}

        public void ShowTest()
        {
            MessageBox.Show(“this in C#.\n\r“ + MessageText);
        }
        public void ShowTestArg(string ss)
        {
            MessageBox.Show(“收到JS带参数调用\n\r“ + ss);
        }
    }
}

评论

共有 条评论