【Go|第5期】Lorca无法正常运行的解决方案

news2024/9/23 12:32:00

日期:2023年7月5日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉得有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


在这里插入图片描述


文章目录

  • 一、前言
  • 二、问题描述与解决方案
    • (1)运行闪退情况一
      • (1-1)问题描述
      • (2-2)解决方案
    • (2)运行闪退情况二
      • (2-1)问题描述
      • (2-2)解决方案
  • 四、远程调试相关的命令行参数和选项


一、前言

Lorca 是一个用于构建跨平台桌面应用程序的开源库,专为 Go 语言设计。它使用了 Chromium 浏览器作为应用程序的 UI 层,以及 Go 语言作为后端处理逻辑的编程语言。然而这么一个优秀而又轻量级的 UI 库却在今年 Chrome 更新后无法使用,着实令人头大。

在这里插入图片描述

二、问题描述与解决方案

(1)运行闪退情况一

(1-1)问题描述

运行程序闪退,或者可以看到一个浏览器窗体打开后又立马关闭了,报错如下所示:
在这里插入图片描述

示例代码:

package main

import (
	"log"
	"net/url"

	"github.com/zserge/lorca"
)

func main() {
	// Create UI with basic HTML passed via data URI
	ui, err := lorca.New("data:text/html,"+url.PathEscape(`
	<html>
		<head><title>Hello</title></head>
		<body><h1>Hello, world!</h1></body>
	</html>
	`), "", 480, 320)
	if err != nil {
		log.Fatal(err)
	}
	defer ui.Close()
	// Wait until UI window is closed
	<-ui.Done()
}

(2-2)解决方案

从报错来看,我们推测可能是websocket无法正常连接。Chrome 更新前可以正常运行程序的,更新后就报错无法运行。

Google 或许是为了安全,对 Chromium 做了对应的限制,当然也不会禁用 websocket。由此可见,应该是有提供对应命令行参数来控制的。

顺着这个思路,我找到了 "--remote-allow-origins=*",将其参数加入到 lorca.New(url, "", width, height, "--remote-allow-origins=*") 后,测试发现真的可以正常运行了。

lorca.New(url, "", width, height, "--remote-allow-origins=*

效果如下:
在这里插入图片描述
代码如下:

package main

import (
	"log"
	"net/url"

	"github.com/zserge/lorca"
)

func main() {
	// Create UI with basic HTML passed via data URI
	ui, err := lorca.New("data:text/html,"+url.PathEscape(`
	<html>
		<head><title>Hello</title></head>
		<body><h1>Hello, world!</h1></body>
	</html>
	`), "", 480, 320, "--remote-allow-origins=*")
	if err != nil {
		log.Fatal(err)
	}
	defer ui.Close()
	// Wait until UI window is closed
	<-ui.Done()
}

(2)运行闪退情况二

(2-1)问题描述

在这里插入图片描述

  • 表现:双击运行闪退,命令行运行报错如图所示。
  • 错误:exec:"": executable file not found in %PATH%
  • 翻译:执行:“”,可执行文件在 %PATH% 未被找到

(2-2)解决方案

可能是安装 Chrome 的时候,环境变量未勾选,或者别的原因导致的。解决这个问题很简单,以下有两个解决方案:

一个方案是重装 Chrome 浏览器,环境变量就会自动添加上去,这个操作很简单,但是要重装就感觉麻烦了些;

另外一个方案是,只要我们在环境变量中加上 Chorme.exe 的路径就可以了,如下图所示:

在这里插入图片描述

四、远程调试相关的命令行参数和选项

命令行参数参数说明
--remote-allow-origins指定允许访问远程调试功能的源(origin。远程调试功能允许通过网络连接到 Chromium 浏览器的调试接口,以进行远程调试和控制。使用 --remote-allow-origins 参数,您可以指定允许访问远程调试的源,这通常是一个 URLIP 地址。
-remote-debugging-port=0用于禁用远程调试端口Chromium 浏览器默认情况下会打开一个用于远程调试的端口,允许开发者通过远程连接来调试和控制浏览器的行为。该参数允许您指定要使用的特定端口号,但使用0会禁用远程调试端口。
--remote-debugging-address=<address>指定监听的地址。默认为本地回环地址 127.0.0.1。
--remote-debugging-port=<port>指定远程调试的端口号。默认端口号为 9222。
--remote-debugging-pipe用于指定远程调试使用的命名管道名称。它允许通过命名管道进行与 Chrome 浏览器实例之间的通信,以便进行远程调试操作。
--remote-debugging-socket-name用于指定远程调试使用的 UNIX 域套接字名称。它允许通过 UNIX 域套接字进行与 Chrome 浏览器实例之间的通信,以便进行远程调试操作。
--remote-debugging-targets用于指定要远程调试的目标。该参数用于列出当前正在运行的 Chrome 实例或其他已连接的调试目标。

参考文章:

  • 《github.com/zserge/lorca》
  • 《Lorca框架问题总结》
  • 《List of Chromium Command Line Switches》

我的微信公众号 会飞的小猴子,等你来关注哦 ^ - ^


版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/131574676

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/728325.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

奇怪的SQL问题+1

我的 VIP 用户又抛给我一个 SQL 问题&#xff0c;我很激动&#xff0c;因为素材又来了&#xff1a; 我一看&#xff0c;这个表没什么花头&#xff0c;不就是没设置主键吗&#xff0c;MySQL 会默认生成一个主键&#xff0c;这跟 delete 不掉数据好像也没啥关系。 然后他说&…

事件监听及DOM操作

1.页面内容实现 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>常见事件案例</title> </head> <body><img id"light" src"img/off.gif"> <br><…

红黑树的介绍

红黑树 1.红黑树的概念2. 红黑树的性质3. 红黑树的结点定义4. 红黑树的插入操作情况一: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u存在且为红情况二: cur为红&#xff0c;p为红&#xff0c;g为黑&#xff0c;u不存在/u存在且为黑情况三: cur为红&#xff0c;p为…

Distributional Graphormer:从分子结构预测到平衡分布预测

编者按&#xff1a;近年来&#xff0c;深度学习技术在分子微观结构预测中取得了巨大的进展。然而&#xff0c;分子的宏观属性和功能往往取决于分子结构在平衡态下的分布&#xff0c;仅了解分子的微观结构还远远不够。在传统的统计力学中&#xff0c;分子动力学模拟或增强采样等…

【计算机视觉 | 目标检测】arxiv 计算机视觉关于目标检测的学术速递(7 月 6 日论文合集)

文章目录 一、检测相关(16篇)1.1 Large-scale Detection of Marine Debris in Coastal Areas with Sentinel-21.2 Unbalanced Optimal Transport: A Unified Framework for Object Detection1.3 Detecting Images Generated by Deep Diffusion Models using their Local Intrin…

Oracle单行函数(字符,数值,日期,转换)

Oracle单行函数&#xff08;字符&#xff0c;数值&#xff0c;日期&#xff0c;转换&#xff09; 前言 1、字符函数 1.1大小写转换函数 1.2连接字符串X和concat(X,Y) 1.3ASCII码与字符转换 1.4返回字符串索引位置&#xff1a;instr(x,str) 1.5返回字符串长度&#xff1a;length…

使用Plotly创建自定义指标图表

大家好&#xff0c;使用Plotly可以创建和自定义指标图表&#xff0c;本文中将介绍如何使用Plotly库创建指标图表的具体操作步骤。 Plotly简介 Plotly是一个强大的数据可视化工具&#xff0c;允许我们使用Python创建各种交互式绘图和图表。在Plotly提供的无数类型的图表中&…

【MySQL】MySQL里程碑

个人主页&#xff1a;【&#x1f60a;个人主页】 系列专栏&#xff1a;【❤️MySQL】 文章目录 时间表从产品特性的角度梳理其发展过程中了解MySQL里程碑事件 时间表 从产品特性的角度梳理其发展过程中了解MySQL里程碑事件 1995年&#xff0c;MySQL 1.0发布&#xff0c;仅供内…

【LeetCode周赛】2022上半年题目精选集——贪心

文章目录 2136. 全部开花的最早一天&#xff08;贪心&#xff09;⭐⭐⭐⭐⭐思路代码语法解析&#xff1a;Integer[] id IntStream.range(0, plantTime.length).boxed().toArray(Integer[]::new); 2141. 同时运行 N 台电脑的最长时间&#xff08;贪心&#xff09;⭐⭐⭐⭐⭐解…

一分钟带你创建百万测试数据,玩转软件测试

准备测试数据是软件测试中非常重要的一个环节&#xff0c;无论是手工测试、动化测试还是性能测试&#xff0c;生成大量测试数据以评估性能是一项重要任务。 然而&#xff0c;寻找合适的测试数据并确保其质量常常是一项繁琐且耗时的工作。 先来看一下准备测试数据常见的四类方法…

Vue 实时显示时间

Vue 实时显示时间 getNowTime() {setInterval(() > {const date new Date();var year date.getFullYear();var month (date.getMonth() 1).toString().padStart(2, "0");var day date.getDate().toString().padStart(2, "0");var hours date.ge…

人工智能商业变现途径,并介绍详细公司案列

目录 1. 推荐系统&#xff1a;2. 智能广告和营销&#xff1a;3. 聊天机器人和虚拟助手&#xff1a;4. 自动化和机器人化&#xff1a;5. 数据分析和预测&#xff1a;6. 机器视觉和图像识别&#xff1a;7. 金融科技&#xff08;FinTech&#xff09;&#xff1a;8. 医疗诊断和健康…

【成长之路】nginx配置https遇到的一系列问题

问题一&#xff1a;拿到手的文件并没有网上说的crt和key&#xff0c;而是一个cer、key和csr 按照网上说的&#xff0c;将cer转成pem文件&#xff0c;配置之后确实好使了 server {listen 443 ssl;ssl_certificate /opt/nginx/conf/域名.cer;ssl_certificate_key /opt/nginx/co…

诚迈科技董事长、统信软件董事长王继平出席全球数字经济大会

7月5日&#xff0c;2023全球数字经济大会“数字未来新一代软件产业高质量发展论坛”在北京大兴隆重举行。论坛以“数字新高地&#xff0c;数创兴未来”为主题&#xff0c;共同探讨产业升级新路径&#xff0c;凝聚数字经济合作新共识&#xff0c;构建数字产业集聚发展新高地。诚…

python接口自动化之DDT数据驱动测试

一、简单介绍 DDT&#xff08;Date Driver Test&#xff09;&#xff0c;所谓数据驱动测试&#xff0c;简单来说就是由数据的改变从而驱动自动化测试的执行&#xff0c;最终引起测试结果的改变。通过使用数据驱动测试的方法&#xff0c;可以在需要验证多组数据测试场景中&…

YApi-高效、易用、功能强大的可视化接口管理平台——(二)YApi 分组权限

YApi 分组权限 认识 YApi角色划分项目权限分组权限分组操作创建分组项目列表添加成员分组删除 认识 YApi YApi 是一个开源的接口管理平台&#xff0c;可以方便地管理和测试 API 接口&#xff0c;支持接口文档自动生成、Mock 数据生成、接口测试和接口监控等功能。YApi 支持多人…

TCP 协议报文

TCP 提供面向连接的通信传输&#xff0c;面向连接是指在传送数据之前必须先建立连接&#xff0c;数据传送完成后要释放连接。无论哪一方向另一方发送数据之前&#xff0c;都必须先在双方之间建立一条连接。在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;连接…

ATFX国际:大非农数据来袭,美国劳动力市场需求或空前旺盛

ATFX国际&#xff1a;昨日晚间公布的ADP数据震惊市场&#xff0c;新增就业人口高达49.7万人&#xff0c;而预期值仅为22.8万人&#xff0c;前值也只有26.7万人。公布值约为预期值和前值的总和。 ▲ATFX图 ADP数据是非农就业报告的前瞻指标&#xff0c;前者表现亮眼&#xff0c…

vue 表单校验不通过问题

记录 vue element 表单验证有值但验证失败问题 <el-form ref"form" :model"form" :rules"rules" class"baseForm"label-width"160px"><div class"sub-body"><el-row><el-col :span"24…

simulink 查表模块lookup table

一维查表 及样条曲线 或者m脚本 clear; x [1 2 3 4 5]; y [1 3 5 3 1];%二维表格 x1 [1 2 3]; x2 [1 2 3 4 5]; y2 [1 2 3 4 5; 6 7 8 9 10; 11 12 13 14 15];%三维表格 k1 [1 2 3]; k2 [1 2 3]; k3 [1 2 3 4 5];for i 1:1:3for j 1:1:3for k 1:1:5y3(i,j,k) ijk;…