cefsharp入坑实践2

1、解决触屏的拖拽问题

选用的cefsharp 的wpf实现,但是进行到一半发现无法在触摸屏上实现滑动和拖动页面,经过一番折腾换到winform平台下,触摸功能能正常使用了。

2、解决双指触控页面缩放的问题

触摸屏上不希望出现双指触控页面缩放,需要单独禁止。加入下面语句能实现。

 //禁止触屏双指缩放
            settings.CefCommandLineArgs.Add("disable-pinch", "1");

3、解决触屏长按弹出右键菜单问题

在网页的js中设置

document.oncontextmenu = new Function("return false");   

在cefsharp中解决右键菜单问题

 browser.MenuHandler = new MenuHandler();

internal class MenuHandler : IContextMenuHandler
{
public void OnBeforeContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model)
{
model.Clear();
//throw new NotImplementedException();
}

public bool OnContextMenuCommand(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, CefMenuCommand commandId, CefEventFlags eventFlags)
{
return false;
//throw new NotImplementedException();
}

public void OnContextMenuDismissed(IWebBrowser browserControl, IBrowser browser, IFrame frame)
{
//throw new NotImplementedException();
}

public bool RunContextMenu(IWebBrowser browserControl, IBrowser browser, IFrame frame, IContextMenuParams parameters, IMenuModel model, IRunContextMenuCallback callback)
{
return false;
//throw new NotImplementedException();
}
}

附上网上找到的Chromium常见参数

全屏打开网页 –kiosk www.baidu.com
用户数据目录制定 –user-data-dir=”d:\userdata”
禁止双指缩放 –disable-pinch(这个很有用,在触摸设备上)
禁止提示翻译 –disable-translate
最大化 –start-maximized

下面的参数 就没有一一试过 
1 –allow-outdated-plugins 不停用过期的插件。
2 –allow-running-insecure-content 默认情况下,https 页面不允许从 http 链接引用 javascript/css/plug-ins。添加这一参数会放行这些内容。
3 –allow-scripting-gallery 允许拓展脚本在官方应用中心生效。默认情况下,出于安全因素考虑这些脚本都会被阻止。
4 –disable-accelerated-video 停用 GPU 加速视频。
5 –disable-dart 停用 Dart。
6 –disable-desktop-notifications 禁用桌面通知,在 Windows 中桌面通知默认是启用的。
7 –disable-extensions 禁用拓展。
8 –disable-file-system 停用 FileSystem API。
9 –disable-preconnect 停用 TCP/IP 预连接。
10 –disable-remote-fonts 关闭远程字体支持。SVG 中字体不受此参数影响。
11 –disable-speech-input 停用语音输入。
12 –disable-web-security 不遵守同源策略。
13 –disk-cache-dir 将缓存设置在给定的路径。
14 –disk-cache-size 设置缓存大小上限,以字节为单位。
15 –dns-prefetch-disable 停用DNS预读。
16 –enable-print-preview 启用打印预览。
17 –extensions-update-frequency 设定拓展自动更新频率,以秒为单位。
18 –incognito 让浏览器直接以隐身模式启动。
19 –keep-alive-for-test 最后一个标签关闭后仍保持浏览器进程。(某种意义上可以提高热启动速度,不过你最好得有充足的内存)
20 –kiosk 启用kiosk模式。(一种类似于全屏的浏览模式)
21 –lang 使用指定的语言。
22 –no-displaying-insecure-content 默认情况下,https 页面允许从 http 链接引用图片/字体/框架。添加这一参数会阻止这些内容。
23 –no-first-run 跳过 Chromium 首次运行检查。
24 –no-referrers 不发送 Http-Referer 头。
25 –no-sandbox 彻底停用沙箱。
26 –no-startup-window 启动时不建立窗口。
27 –proxy-pac-url 使用给定 URL 的 pac 代理脚本。(也可以使用本地文件,如 –proxy-pac-url=”file:\\c:\proxy.pac”)
28 –proxy-server 使用给定的代理服务器,这个参数只对 http 和 https 有效。(例如 –proxy-server=127.0.0.1:8087 )
29 –single-process 以单进程模式运行 Chromium。(启动时浏览器会给出不安全警告)
31 –user-agent 使用给定的 User-Agent 字符串

posted on 2018-09-27 14:57  talent.snail  阅读(1417)  评论(0编辑  收藏  举报

导航