Skip to content

桌面端 SiYuan 可执行程序支持使用参数连接非本机内核服务 #5990

Closed
@Zuoqiu-Yingyi

Description

@Zuoqiu-Yingyi
Contributor

在什么情况下你需要该特性?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

added a commit that references this issue on Sep 27, 2022

🎨 siyuan-note#5990 桌面端 `SiYuan` 可执行程序支持使用参数连接非本机内核服务

88250

88250 commented on Sep 27, 2022

@88250
Member

这个用法可能会有问题,比如复制文件时需要读取系统剪切板,这部分功能是内核提供的,如果界面连接了其他远程内核的话会读取不到。

88250

88250 commented on Sep 27, 2022

@88250
Member

另外,比较好用的方式应该是让用户在界面上配置远程服务器地址(类似为知笔记那样)。之前我们考虑过,但是这部分要梳理清楚工作量有点大,所以一直没有开展。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 27, 2022

@Zuoqiu-Yingyi
ContributorAuthor

这个用法可能会有问题,比如复制文件时需要读取系统剪切板,这部分功能是内核提供的,如果界面连接了其他远程内核的话会读取不到。

我使用了 /stage/build/desktop/ 作为主界面访问的路径是不是可以解决这个问题?

88250

88250 commented on Sep 27, 2022

@88250
Member

不行,在 util/paste.ts 中调用了接口 api/clipboard/readFilePaths,这个接口是获取系统剪切板的,是内核实现的。

88250

88250 commented on Sep 27, 2022

@88250
Member

之前我们找过 Electron/Node 的相关实现,但是不工作,所以才在内核上实现,如果这部分能移植到前端的话这个问题才能解决。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 27, 2022

@Zuoqiu-Yingyi
ContributorAuthor

不行,在 util/paste.ts 中调用了接口 api/clipboard/readFilePaths,这个接口是获取系统剪切板的,是内核实现的。

这里分别使用了 #if !BROWSER && !MOBILE#if !BROWSER 预编译指令, 因此不会在 /stage/build/desktop/ 中激活

88250

88250 commented on Sep 27, 2022

@88250
Member

哦哦,对的。但是这样的话不如直接 PWA 了啊……

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 27, 2022

@Zuoqiu-Yingyi
ContributorAuthor

哦哦,对的。但是这样的话不如直接 PWA 了啊……

siyuan:// 协议必须注册才能使用, 目前 PWA 应该还不能实现

88250

88250 commented on Sep 27, 2022

@88250
Member

我个人觉得如果只是为了支持协议拉起的话这个场景不是太重要,很少有用户会远程有个内核然后还需要在本地通过协议拉起的。本地既然已经安装桌面端,那么为什么不通过云端同步使用呢?

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 27, 2022

@Zuoqiu-Yingyi
ContributorAuthor

我个人觉得如果只是为了支持协议拉起的话这个场景不是太重要,很少有用户会远程有个内核然后还需要在本地通过协议拉起的。本地既然已经安装桌面端,那么为什么不通过云端同步使用呢?

我也不太清楚, 不过群里确实有朋友需要, 然后我发现可以实现就实现了~
不过该用户是 NAS 用户, 可能工作区体积较大?

88250

88250 commented on Sep 27, 2022

@88250
Member

我目前的感觉是:代码实现虽然没有副作用,但是场景不强, 比较头疼的是后续必须维护这部分代码,这样的话我觉得最好还是先不合并,说句抱歉啊。

如果一定要实现的话,我想应该是之前提到的远程连接内核方式,这样用户体验比较好。

群里的朋友如果需要,建议让他自己维护 main.js 😂

PR 和 issue 我关闭了,见谅。

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Sep 27, 2022

@Zuoqiu-Yingyi
ContributorAuthor

我目前的感觉是:代码实现虽然没有副作用,但是场景不强, 比较头疼的是后续必须维护这部分代码,这样的话我觉得最好还是先不合并,说句抱歉啊。

如果一定要实现的话,我想应该是之前提到的远程连接内核方式,这样用户体验比较好。

群里的朋友如果需要,建议让他自己维护 main.js 😂

PR 和 issue 我关闭了,见谅。

嗯嗯, 实现方案确实不太优雅

Zuoqiu-Yingyi

Zuoqiu-Yingyi commented on Apr 16, 2023

@Zuoqiu-Yingyi
ContributorAuthor

哦哦,对的。但是这样的话不如直接 PWA 了啊……

经过测试, PWA 不支持注册 HTML Standard 以外的协议, 只能注册形如 web+siyuan 的自定义协议...

TCOTC

TCOTC commented on Apr 3, 2025

@TCOTC
Contributor
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @88250@Zuoqiu-Yingyi@TCOTC

        Issue actions

          桌面端 `SiYuan` 可执行程序支持使用参数连接非本机内核服务 · Issue #5990 · siyuan-note/siyuan