golang的wails框架在macos下的问题

1、前言

  之前练手写了格调用ollama api的web应用,想找个容器打包下,于是找到wails来打包,windows下都是很正常的,因为就是普通的http调用,也没遇到cors跨域问题,但是到了macos下使用wails dev命令启动的客户端却是出现了几个问题。

  总得来说就是时不时遇到一些浏览器限制相关的问题

2、问题

2.1、页面出不来

  就是因为wails在macos使用websocket来更新vite的hmr热更新功能,所以出不来资源,解决方法是使用这个issuesmacOS HMR not working inside Wails frame的回答。

在vite.config.js的配置增加以下配置即可:

复制代码
server: {
    hmr: {
      host: 'localhost',
      protocol: 'ws',
    },
  }

2.2、请求出现跨域

  跨域也是因为他用了个奇奇怪怪的私有协议来通信,具体可以看issueOrigin wails://wails is not allowed by Access-Control-Allow-Origin,可以看到主要是因为他源码的startURL指定了一个奇怪的协议,windows用正常的http导致的,这个解决就是改下他源码,把他的macos的实现改得和windows一样。

到你的goPath下面,按照目录找到如下文件:wails/v2/internal/frontend/desktop/darwin/frontend.go

我的路径如下:/Users/hui/go/pkg/mod/github.com/wailsapp/wails/v2@v2.9.2/internal/frontend/desktop/darwin

改动如下:

39行的startURl改为:const startURL = "http://127.0.0.1/"

97行的:

复制代码
result.startURL.Host = net.JoinHostPort(result.startURL.Host+".localhost", port)

去掉.localhost

改为:

复制代码
result.startURL.Host = net.JoinHostPort(result.startURL.Host+"", port)

接着启动项目,好了

2.3、不能访问外网的接口

  会报如下错误:

复制代码
The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

是mac自己的安全机制问题,百度了下,说是接口是https就行了,我访问的是http的接口

2.4、如何调试

  这格使用wails dev启动之后,是框住的网页来的,在网页处,右键检查元素即可

2.5、如何动态参数控制

  看这个issuePass Command Line Arguments to main.go即可

3、demo项目

ollama-chat项目的样式是参考一个react项目写的。

参考文章:3 天,入门 TAURI 并开发一个跨平台 ChatGPT 客户端

相关推荐
未来之窗软件服务11 小时前
Go 利器 GoReSym:剥离符号恢复 Go 二进制元数据—东方仙盟
开发语言·golang·仙盟创梦ide·东方仙盟
念何架构之路14 小时前
zap WriteSyncer与Sink体系
云原生·golang
青柠之夏cc14 小时前
Kotlin Multiplatform:一次编写,全平台运行,2026 年跨平台开发的 “最优解”?
macos·objective-c·cocoa
microrain16 小时前
权限改了,接口立刻生效,菜单要等重新登录:SagooIoT 权限体系的四道闸门
物联网·golang·开源·sagooiot
大侠归来2 天前
C 与 Go 语言对比:从设计哲学到工程实践
java·c语言·golang
小小龙学IT2 天前
Go 语言内存管理与垃圾回收(GC)深度解析:从逃逸分析到性能调优适
golang·go1.19
HEJOO92 天前
Go 语言结构体定义与实例详解
开发语言·算法·golang
黑科技iOS上架2 天前
iOS framework/dylib动态库定向加固实战
macos·ios·objective-c·cocoa·审核·ios混淆·执行程序差异化
墨鱼老师2 天前
Go+Gin+Vue 毕设项目:Gin 框架搭建后端基础接口实战
vue.js·golang·go·gin·前后端分离·计算机毕业设计·go 后端
JWASX2 天前
Java 转 go 学习 - 类型转换
学习·golang