Lorca: 打造轻量级HTML5桌面应用的利器

12,090次阅读
没有评论

共计 1586 个字符,预计需要花费 4 分钟才能阅读完成。

Lorca: 打造轻量级 HTML5 桌面应用的利器

lorcaBuild cross-platform modern desktop apps in Go + HTML5项目地址:https://gitcode.com/gh_mirrors/lo/lorca

Lorca: 打造轻量级 HTML5 桌面应用的利器

Lorca 是一个由纯 Go 语言编写的微小库,它的目标是让你在 Go 中构建现代 HTML5 桌面应用程序变得轻松。这个项目不将 Chrome 浏览器捆绑到应用程序包中,而是利用已经安装的版本作为 UI 层,提供了一种高效且简洁的方式来调用 Go 代码和操作用户界面。

功能亮点

  • 精简 API: 简单易用的纯 Go 库,无需 cgo。
  • 小巧可人: 应用程序体积通常仅为 5 -10MB。
  • 性能与美观并存: 利用 HTML/CSS 创建漂亮界面,结合 Go 的强大性能和开发便捷性。
  • 双向交互: 在 JavaScript 中调用 Go 函数,从 Go 中控制 UI。
  • 异步流畅: 支持两种语言之间的异步流程(Go 中的 async/await 和 Goroutines)。
  • 灵活加载: 可以通过本地 Web 服务器或数据 URL 加载 Web 界面。
  • 无头测试: 支持在无头模式下测试你的应用。
  • 多窗口支持: 创建多个应用窗口。
  • 打包定制: 支持跨平台打包,并可自定义应用图标。

请注意,Lorca 有一些设计上的限制:

  • 需要已安装 Chrome/Chromium 70 及以上版本。
  • 目前无法控制 Chrome 窗口(如去除边框、透明度、位置或大小)。
  • 不包含窗口菜单,但可以通过第三方库实现托盘菜单和原生对话框。

如果你希望拥有更多对浏览器窗口的控制权,可以考虑使用类似的 webview 库进行迁移。

使用示例

ui, _ := lorca.New("","", 480, 320)
defer ui.Close()

// 将 Go 函数绑定到 JS,Go 函数可以在 JS 中表现为 Promise
ui.Bind("add", func(a, b int) int {return a + b})

// 从 Go 中调用 JS 函数
n := ui.Eval(`Math.random()`).Float()
fmt.Println(n)

// JS 调用 Go,然后再回调回 JS
m := ui.Eval(`add(2, 3)`).Int()
fmt.Println(m)

// 当浏览器窗口关闭时结束

查看示例了解更多关于绑定函数和打包二进制文件的信息。

快速上手:Hello World

按照以下步骤运行 Hello World 示例:

cd examples/counter
go get
go run ./

工作原理

Lorca 通过 Chrome DevTools 协议在 Chrome 实例下工作。首先,它会找到已安装的 Chrome,启动远程调试实例并绑定到一个临时端口,从 stderr 获取实际的 WebSocket 端点。然后,Lorca 打开一个新的客户端连接到 WebSocket 服务器,并通过发送 JSON 消息来执行 Chrome DevTools 协议方法来控制 Chrome。JavaScript 函数在 Chrome 中执行,而 Go 函数则在 Go 运行环境中运行,并将返回值发送给 Chrome。

名字背后的故事

Lorca 的名字来源于西班牙诗人费德里科·加西亚·洛尔卡(Federico García Lorca)。据说他在被处决前看到了士兵头顶升起的朝阳,感叹道:“然而,太阳依然升起 …”——这可能是他一首诗的开头,这也象征了 Lorca 项目的活力和持续发展。

许可证

代码遵循 MIT 许可,欢迎在商业项目中使用。


通过 Lorca,你可以享受 Go 带来的高性能和便捷开发,同时利用 HTML5 的力量来创造引人注目的用户界面。现在就加入 Lorca 的世界,开启你的桌面应用开发之旅吧!

lorcaBuild cross-platform modern desktop apps in Go + HTML5项目地址:https://gitcode.com/gh_mirrors/lo/lorca

原文地址: Lorca: 打造轻量级 HTML5 桌面应用的利器

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-10-07发表,共计1586字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)