首页 > 其他分享 >记cefsharp使用中遇到的坑

记cefsharp使用中遇到的坑

时间:2023-05-11 14:44:29浏览次数:25  
标签:webView2HostObject cefsharp 调用 遇到 C# JS 使用 public

很多做过混合客户端开发的人应该都熟悉cefsharp,同类的产品还有webview2,但是如果客户端是以管理员身份运行的,HTML元素 <input type="file">是不起作用的。

我一开始也是用的webview2,因为无法启用文件上传对话框,后来转到了cefsharp,然后遇到了一个小坑,在此记录一下。

 

JS调用C#的方法,无论C#端是大写字母开头还是小写字母开头,在JS调用的时候都要用小写的开头

C#代码:

    /// <summary>
    /// 自定义宿主类,用于向网页注册C#对象,供JS调用
    /// </summary>
    [ClassInterface(ClassInterfaceType.AutoDual)]
    [ComVisible(true)]
    public class WebView2HostObject
    {
        public event Action<string> CopyTextAndImageEvent;

        public void SendTextAndImage(string jsonStr)
        {
            CopyTextAndImageEvent?.Invoke(jsonStr);
        }
    }

JS代码:

<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
   
    <script> 
        async function Test() {            
            await CefSharp.BindObjectAsync('webView2HostObject');
            webView2HostObject.sendTextAndImage("hello");//调用c#方法,方法的首字母要小写,无论c#那边是否大写            
        };
    </script>
</head>
<body>
    <button onclick="Test()">测试</button> 
</body>
</html>

在客户端程序启动时,向JS端注入了C#的对象 webView2HostObject

            //向JS注入c#对象
            webBrowser.JavascriptObjectRepository.Register("webView2HostObject", webView2HostObject, BindingOptions.DefaultBinder);

 

起初在前端界面调用C#方法使用的名字和C#端一样(SendTextAndImage),无论怎么调用都不生效,改成小写后一切正常。

标签:webView2HostObject,cefsharp,调用,遇到,C#,JS,使用,public
From: https://www.cnblogs.com/zfsn2021/p/17390963.html

相关文章

  • 光伏发电系统是什么及直流计量仪表在其中的使用
    安科瑞虞佳豪概述独立光伏发电系统也叫离网光伏发电系统。主要由太阳能电池组件、控制器、蓄电池组成,若要为交流负载供电,还需要配置交流逆变器。并网发电系统是将光伏阵列、风力机以及燃料电池等产生的可再生能源不经过蓄电池储能,通过并网逆变器直接反向馈入电网的发电系统。因......
  • 使用top命令监控服务器进程
    最近服务器老是内存满了,导致进程被杀掉,使用top命令记录进程信息,排查是哪个进程有异常 先建个monitor-start.sh脚本,供crontab执行,命令如下top-c-bw500-d5-n1-o%MEM-b>>/opt//memory-monitor/log_`date+%Y%m%d`.txt 再编辑crontab文件,填入定时执行命令vim/et......
  • postman使用方法
    使用Postman测试URL,需要输入以下信息:请求方法(RequestMethod):请求方法指定HTTP/HTTPS请求中使用的动作类型,比如GET、POST、PUT、DELETE。URL(UniformResourceLocator):URL是识别资源在网络上位置的字串请求头部(Headers):请求头允许客户端向服务器传递请求的附加信息,例......
  • Centos7使用ssh免密登陆同时禁用root密码登陆
    Centos7使用ssh免密登陆同时禁用root密码登陆首先配置免密登陆,参考:ssh免密登陆禁用root密码登陆修改/etc/ssh/sshd_config文件找到:RSAAuthenticationyesPubkeyAuthenticationyesAuthorizedKeysFile.ssh/authorized_keys修改上面配置项,如果默认前面带了#,就把#给删......
  • 2023-5-11遇到离谱的事情
    在编写shell脚本,关于实现mysql数据库备份,用到了mysqldump命令,可是在执行的时候显示'Accessdeniedforuser'weakxy'@'localhost'(usingpassword:NO)'因为没有密码,我认为应该也不是因为密码错误导致连接不上mysql所以就开始排错,因为脚本文件是放在/usr/sbin目录底下的,所以一......
  • 使用条款-唯一客服系统文档中心
    唯一客服(uniqchat、gofly)、私有化部署版本、对公商务全源码版本、开源版本均受到国家法律和国际公约保护。使用者:无论个人或组织、盈利与否、用途如何(包括以学习和研究为目的),均需仔细阅读本协议,在理解、同意、并遵守本协议的全部条款后,方可开始使用唯一客服软件,若您一旦使用唯一......
  • 在 CentOS 7上安装和使用 FFmpeg
    网上找了那么多资料,还是这个最靠谱...ChatGPT也是在乱教人根据解压包进行安装ffmpeg会导致我的golang使用exec.Command函数的时候没办法调用ffmpeg命令,即使在终端中我可以使用ffmpeg命令。会报不在%PATH的错误,即使我根据网上的教程把他加入了%PATH也还是不行。还是下述最靠谱,都......
  • 使用 Lambda 函数将 CloudWatch Log 中的日志归档到 S3 桶中
    >作者:[SRE运维博客](https://www.cnsre.cn/)>博客地址:[https://www.cnsre.cn/](https://www.cnsre.cn/)>文章地址:[https://www.cnsre.cn/posts/221205544069/](https://www.cnsre.cn/posts/221205544069/)>相关话题:[https://www.cnsre.cn/tags/aws/](https://www.cnsr......
  • BeyondCompare使用
    BeyondCompare使用BeyondCompare软件说明BeyondCompare是一款比对文件夹、比对文件的工具。能够识别出两个目录以及两个文件的差异。下载的话自行百度下载安装。使用-比较目录比较目录的话,就是把要比较的两个目录输入进去,然后回车即可使用-比较文件将两个文件打开进行比较......
  • LSTM算法做时间序列的预测,使用matlab自带的LSTM工具箱函数,预测精度很高,网络参数最优化
    LSTM算法做时间序列的预测,使用matlab自带的LSTM工具箱函数,预测精度很高,网络参数最优化处理,误差评价指标计算。ID:6768660696244807......