几天以来,我在 callto、tel 或其他链接处理程序方面遇到了问题:我创建了一个 .desktop 应用程序,并且运行良好:
[Desktop Entry]
Name=uriOpen CALLTO Handler
Exec=echo %u >> ~/testfile
#Exec=uriopen %U
Icon=plasma-mobile-phone
Type=Application
MimeType=x-scheme-handler/callto;
但是...(注释 Exec 行是原始命令,我的个人脚本),我添加了新的 Exec 行用于调试并查看文件中的输出。
例如,链接是一个简单的 html 代码,如下所示:
<p><a href="callto://4241">callto</a></p>
当我单击链接时,~/testfile 中的输出为:
0.0.16.145
?!?!为什么这个输出? :((
20231218 更新:
如果我在开始时添加一个简单的字符,它就会起作用。
前任。callto://n4241
在我的启动器脚本中,我添加了一个删除的 sedn特点。
我怀疑 KDE XDG-MIME 问题?!
版本:kde Plasma = 5.27.10
KDE 框架 = 5.112.0
Qt = 5.15.11
内核 = 6.6.4-MANJARO(64 位)
答案1
根据 RFC 3986 [1],URI 是:
URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part = "//" authority path-abempty
/ path-absolute
/ path-rootless
/ path-empty
authority = [ userinfo "@" ] host [ ":" port ]
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-rootless = segment-nz *( "/" segment )
因此“4241”被解析为authority
基本上是一个主机。
以 10 为基数的数字 4241 转换为以 16 为基数的数字 00001091,映射回 0.0.16.145。
更有可能的是“4241”被用作路径,因此只需使用单个“/”( path-absolute
) 或根本不使用 ( path-rootless
)。