首页 > 解决方案 > 在电子应用程序中实现延迟深度链接

问题描述

在我们的网页中,我们有一个文档列表和一个用于在电子应用程序中打开文档的按钮。此按钮实际上具有自定义协议 href,文档 ID 作为参数传递。

此电子应用程序只能在从浏览器启动时使用(使用自定义协议“my-custom-protocol://document-id-here”)。根据传递的参数,我们决定在电子应用程序中打开哪个文档。

如果用户尝试直接打开应用程序(不使用浏览器中的链接),我们只会显示一条消息,表明此应用程序只能在从浏览器启动时使用,然后退出应用程序。

现在,如果用户没有在他的机器上安装应用程序并尝试从浏览器打开自定义协议链接,那么我们会提示用户先安装应用程序,然后再次尝试打开链接。这是基本深度链接的一个示例,并且运行良好。

为了更好的用户体验,我们想要改变这种行为。因此,现在当用户尝试打开自定义链接(其中还包含 documentID 作为参数)并且应用程序未安装时,我们将提示用户安装应用程序。但是一旦安装了应用程序,我们希望使用正确的参数(单击链接的文档的文档ID)自动启动应用程序,以便在安装后启动应用程序时打开正确的文档(我们希望实现延迟深度链接)。

我已经看过这个页面,但找不到足够的信息来实现这一点。

标签: electronwindows-installernsisdeep-linkingelectron-builder

解决方案


我解决此问题的方法是在下载的可执行文件的名称中包含标识符,例如myAppName_[identifier].exe. 该[identifier]部分将根据正在打开的文档而改变。然后在应用程序安装过程中,我们可以读取可执行文件名(这个过程在不同的操作系统中有所不同),提取标识符,然后使用它打开正确的文档。


推荐阅读