关于前端:前端网页如何打开一个PC本地应用

34次阅读

共计 2323 个字符,预计需要花费 6 分钟才能阅读完成。

构想一个场景,当咱们在浏览一个网页并且须要下载某个资源时,你的电脑可能常常会跳出一个提示框,询问你是否须要关上“迅雷”。当咱们点击“是”,则会唤醒该本地利用进行下载工作。

针对这个场景产生了一个疑难,网页是如何关上 PC 端利用的呢?

本文针对 Windows 零碎和 MacOS 零碎进行探讨。

自定义协定

在薄荷 FE 的日常开发中,因为须要与 app 频繁交互,app 开发人员定义了相干协定:boohee://,通过该协定,咱们能够唤起薄荷 app。

通过这个场景作者衍生出一个想法,PC 端的利用是否也能够通过相似的协定被关上呢?


Windows

注册表

注册表是 Microsoft Windows 中的一个重要的数据库,用于存储系统和应用程序的设置信息。

它是 Windows 操作系统中的一个外围数据库,其中寄存着各种参数,能够间接管制一些 Windows 应用程序的运行。

在 Windows 环境中,咱们能够通过注册表来定义关上软件的协定。

如何查看注册表中的协定?

Windows 零碎中自带了注册表编辑器,通过 Windows+ r 关上运行,输出 ”regedit”,关上注册表编辑器。

咱们须要的无关关上利用的注册表配置就存在 HEY_CLASSES_ROOT 下。

HEY_CLASSES_ROOT

HKEY_CLASSES_ROOT根键中次要蕴含的是所有启动应用程序须要的信息,其中包含:

  1. 所有扩展名及应用程序和文档之间的关联信息。
  2. 所有驱动程序的名字。
  3. 当作指针的字符串,指向它们代表的理论文件。
  4. 类标识 CLSID,这点在拜访子健信息的时候十分重要,因为 Windows 中拜访了子健的信息都是用 CLSID 来代替的。这里的标识在 Windows XP 零碎中是惟一的。
  5. DDE 和 OLE 信息。对于每个文件关联都能够应用 DDE 和 OLE 性能。
  6. 应用程序和文档应用的图标
示例:关上 postman

点击 postman 文件夹,能够看到右侧有个默认属性定义了URL:postman,导出该注册表能够看到如下配置:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Classes\postman]
    "URL Protocol"=""@="URL:postman"
    
    [HKEY_CURRENT_USER\Software\Classes\postman\shell]
    
    [HKEY_CURRENT_USER\Software\Classes\postman\shell\open]
    
    [HKEY_CURRENT_USER\Software\Classes\postman\shell\open\command]
    @="\"C:\\Users\\X\\AppData\\Local\\Postman\\app-6.0.10\\Postman.exe\"\"%1\""

[HKEY_CURRENT_USER\Software\Classes\postman]中的 postman 就是协定的名字,该配置次要通过
[HKEY_CURRENT_USER\Software\Classes\postman\shell\open\command] 中定义的地址来找到软件并启动。启动软件次要依赖以下两个配置:

    Windows Registry Editor Version 5.00
    
    [HKEY_CURRENT_USER\Software\Classes\postman]
    "URL Protocol"=""@="URL:postman"
    
    [HKEY_CURRENT_USER\Software\Classes\postman\shell\open\command]
    @="\"C:\\Users\\X\\AppData\\Local\\Postman\\app-6.0.10\\Postman.exe\"\"%1\""

剖析一下上述的配置是什么意思:

  • HKEY_CURRENT_USER\Software\Classes\postman: 定义了驱动函数的名字
  • HKEY_CURRENT_USER\Software\Classes\postman\shell\open\command:定义了程序所在的门路

依据这两个配置,前端网页能够通过 postman:// 协定来关上本地的 postman 利用。

成果展现:


MacOS

在 MacOS 中关上利用和在 Ios 中雷同,能够给本人的 app 增加URL Schemes

Info.plist

每次新建一个我的项目工程,Xcode 都会主动创立一个 Info.plist 文件,这个文件的次要作用就是提供利用在运行期的一些配置。

Info.plist文件位于应用程序的 Contents/ 子目录下,这个文件保留了利用包的元数据信息。这个文件是必备的,操作系统通过这个文件断定依赖关系和其余属性。

CFBundleURLTypes:这个利用包关联的 URL。这是一个字典,指定了这个包解决的 URL schemes 以及解决形式。

以 Foxmail 为例,这是该利用相干的配置:

    <key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>mailto</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>mailto</string>
            </array>
        </dict>
    </array>

其中定义了该利用包下定义的 URL Schemes 为 mailto://。

如何查问 app 的 URL Schemes

关上 finder => 应用程序 => 右击利用并抉择显示包内容 => 抉择 Contents 文件夹下的 Info.plist 文件

正文完
 0