Closed
Description
在什么情况下你需要该特性?In what scenarios do you need this feature?
由于 web 端不支持 URL Scheme siyuan://
, 因此我想出一种通过桌面端可执行程序 SiYuan
带参数 --server-origin=http(s)://server.origin(:port)
启动的方案, 让桌面端连接非本机内核提供的服务, 进而可以响应 siyuan://
描述可能的最优解决方案 Describe the optimal solution
马上 PR
描述候选的解决方案 Describe the candidate solution
No response
其他信息 Other information
No response
Activity
🎨 siyuan-note#5990 桌面端 `SiYuan` 可执行程序支持使用参数连接非本机内核服务
SiYuan
可执行程序支持使用参数连接非本机内核服务 #599188250 commentedon Sep 27, 2022
这个用法可能会有问题,比如复制文件时需要读取系统剪切板,这部分功能是内核提供的,如果界面连接了其他远程内核的话会读取不到。
88250 commentedon Sep 27, 2022
另外,比较好用的方式应该是让用户在界面上配置远程服务器地址(类似为知笔记那样)。之前我们考虑过,但是这部分要梳理清楚工作量有点大,所以一直没有开展。
Zuoqiu-Yingyi commentedon Sep 27, 2022
我使用了
/stage/build/desktop/
作为主界面访问的路径是不是可以解决这个问题?88250 commentedon Sep 27, 2022
不行,在 util/paste.ts 中调用了接口
api/clipboard/readFilePaths
,这个接口是获取系统剪切板的,是内核实现的。88250 commentedon Sep 27, 2022
之前我们找过 Electron/Node 的相关实现,但是不工作,所以才在内核上实现,如果这部分能移植到前端的话这个问题才能解决。
Zuoqiu-Yingyi commentedon Sep 27, 2022
这里分别使用了
#if !BROWSER && !MOBILE
与#if !BROWSER
预编译指令, 因此不会在/stage/build/desktop/
中激活88250 commentedon Sep 27, 2022
哦哦,对的。但是这样的话不如直接 PWA 了啊……
Zuoqiu-Yingyi commentedon Sep 27, 2022
siyuan://
协议必须注册才能使用, 目前 PWA 应该还不能实现88250 commentedon Sep 27, 2022
我个人觉得如果只是为了支持协议拉起的话这个场景不是太重要,很少有用户会远程有个内核然后还需要在本地通过协议拉起的。本地既然已经安装桌面端,那么为什么不通过云端同步使用呢?
Zuoqiu-Yingyi commentedon Sep 27, 2022
我也不太清楚, 不过群里确实有朋友需要, 然后我发现可以实现就实现了~
不过该用户是 NAS 用户, 可能工作区体积较大?
88250 commentedon Sep 27, 2022
我目前的感觉是:代码实现虽然没有副作用,但是场景不强, 比较头疼的是后续必须维护这部分代码,这样的话我觉得最好还是先不合并,说句抱歉啊。
如果一定要实现的话,我想应该是之前提到的远程连接内核方式,这样用户体验比较好。
群里的朋友如果需要,建议让他自己维护 main.js 😂
PR 和 issue 我关闭了,见谅。
Zuoqiu-Yingyi commentedon Sep 27, 2022
嗯嗯, 实现方案确实不太优雅
🎨 改进伺服代码片段 `/snippets/` #6356 (#6380)
🎨 调整 Windows 安装程序打包选项 (#6391)
鉴权兼容 IPv6 本机回环地址 (#6400)
支持 `HEVC` 编码视频播放 (#6406)
保存 `data/storage/local.json` 时格式化 (#6424)
行内元素的下划线颜色继承当前元素前景颜色 (#6464)
Zuoqiu-Yingyi commentedon Apr 16, 2023
经过测试, PWA 不支持注册 HTML Standard 以外的协议, 只能注册形如
web+siyuan
的自定义协议...TCOTC commentedon Apr 3, 2025
https://ld246.com/article/1743658043828