提问 发文

如何浏览器启动本地应用?

微微菌

| 2023-12-26 14:06 143 0 0

新建注册表

可以新建一个txt文件,修改后缀名为reg。以文本形式打开该文件,粘贴以下文本内容

Windows Registry Editor Version5.00

[HKEY_CLASSES_ROOT\sunlogin]
@="URL:sunlogin Protocol Handler"
"URL Protocol"=""

[HKEY_CLASSES_ROOT\sunlogin\shell]

[HKEY_CLASSES_ROOT\sunlogin\shell\open]

[HKEY_CLASSES_ROOT\sunlogin\shell\open\command]
@="C:\\Program Files\\Oray\\SunLogin\\SunloginClient\\SunloginClient.exe %1"

为了便于下文的解释,以下是上文中文本内容的伪代码。指出了5处协议名和1处程序绝对路径。

Windows Registry Editor Version5.00

[HKEY_CLASSES_ROOT\协议名]

@="URL:协议名 Protocol Handler"

"URL Protocol"=""

[HKEY_CLASSES_ROOT\协议名\shell]

[HKEY_CLASSES_ROOT\协议名\shell\open]

[HKEY_CLASSES_ROOT\协议名\shell\open\command]

@="程序绝对路径 %1"

查找程序路径

复制.exe程序的绝对路径,路径中的斜杠为双反斜杠。粘贴替换文本中的程序绝对路径和协议名,注意保留前有原有的字符。

运行注册表

双击启动注册表文件,注册该自定义协议。

访问自定义协议的URL

拼接url,格式为:[协议名]://[自定义参数]

例如上文中的协议名为sunlogin,url应为sunlogin://param。其中自定义参数为可省略项,所以url也可为sunlogin://。

打开浏览器访问url,即可弹出启动提示框,点击确认即可启动应用。

Mac

重新安装应用

如果之前有安装过该应用,则重新安装一次该应用。(估计与签名验证时间有关,没有细究)

修改plist文件

进入应用包内容,找到Info.plist文件,用能编辑plist文件的工具打开(推荐VSCode),在文件root下添加以下代码:

<key>CFBundleURLTypes</key>
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>browser launch</string>
    <key>CFBundleURLSchemes</key>
    <array>
      <string>sunlogin</string>
    </array>
  </dict>
</array>

注意保存文件时的权限问题。也可以复制该文件到包外,修改完之后再替换回去。

重启应用

彻底关闭该应用,然后重新启动一次,确定应该能正常启动。如果不能正常启动,则再检查前两步,或者有我未知的情况。

访问自定义协议的URL

和Windows下的该部分一致。

收藏 0
分享
分享方式
微信

评论

游客

全部 0条评论

10603

文章

10.49W+

人气

19

粉丝

1

关注

官方媒体

轻松设计高效搭建,减少3倍设计改稿与开发运维工作量

开始免费试用 预约演示

扫一扫关注公众号 扫一扫联系客服

©Copyrights 2016-2022 杭州易知微科技有限公司 浙ICP备2021017017号-3 浙公网安备33011002011932号

互联网信息服务业务 合字B2-20220090

400-8505-905 复制
免费试用
微信社区
易知微-数据可视化
微信扫一扫入群