栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在Node.js中注册URL协议处理程序

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在Node.js中注册URL协议处理程序

这是一个有趣的想法。我认为目前没有跨平台的node.js解决方案。我确实遇到了要求同一件事的人们:

https://github.com/rogerwang/node-webkit/issues/951

Electron现在通过适用于macOS和Windows

app.setAsDefaultProtocolClient
API(自v0.37.4起)支持它。

编写该库并不难。

Windows

在Windows方面,您必须将应用程序注册为处理该URI方案的应用程序。

您需要为您的应用程序设置一个注册表项:

      HKEY_CLASSES_ROOT      alert      (Default) = "URL:alert Protocol"      URL Protocol = ""      DefaultIcon         (Default) = "alert.exe,1"      shell         open command    (Default) = "C:Program Filesalertalert.exe" "%1"

然后,当您的应用程序由Windows运行时,您应该能够看到中的参数

process.argv[]
。确保启动外壳程序以运行节点,而不仅仅是直接运行应用程序。

MSDN原始文章

请注意,这需要管理员特权并在系统范围内设置处理程序。要针对每个用户执行此操作,您可以

HKEY_CURRENT_USERSoftwareClasses
改为使用它,就像Electron的实现那样。

苹果:

github注释中引用的“ OS X”文章实际上是针对iOS的。我将查看以下编程指南,以获取有关注册应用程序以处理URL方案的信息:

AppleDev文档

总之,您将需要创建启动服务,并使用填充.plist文件

CFBundleURLTypes
。此字段是一个数组,应仅使用协议名称填充,即
http

以下超级用户问题是一种更好的解决方案,但是是针对每个用户的设置。

“您要查找的文件是〜/ Library / Preferences / com.apple.LaunchServices.plist。

它包含一个名为LSHandlers的数组,并且可以使用LSHandlerRole相应地修改定义LSHandlerURLScheme的Dictionary子级。

Linux:

据我所知,在Linux中有几种方法可以做到这一点(惊奇吗?)

Gnome有一个工具,可以让您注册一个URL处理程序W3存档

gconftool-2 -t string -s /desktop/gnome/url-handlers/tel/command "bin/vonage-call %s"gconftool-2 -s /desktop/gnome/url-handlers/tel/needs_terminal false -t boolgconftool-2 -t bool -s /desktop/gnome/url-handlers/tel/enabled true

一些较轻的重量管理器看起来像它们使您可以创建伪造的mime类型并将其注册为URI协议处理程序。

“伪造的mime类型是使用以下各种方案为URI创建的:application / x-xdg-protocol-
支持特定URI协议的应用程序可以在其桌面项文件中将伪造的mime类型添加到其MimeType密钥中。因此很容易找到通过查看mimeinfo.cache文件,找出安装在支持URI方案的系统上的所有应用程序。再次使用defaults.list文件为指定的URI类型指定默认程序。”
wiki.lxde.org

KDE还支持它们自己的处理URL协议处理程序的方法:

创建一个文件:

$KDEDIR/share/services/your.protocol
并用相关数据填充它:

[Protocol]exec=/path/to/player "%u"protocol=lastfminput=noneoutput=nonehelper=truelisting=reading=falsewriting=falsemakedir=falsedeleting=false

来自所有地方的last.fm论坛

希望有帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401544.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号