在电子应用程序中实现延迟深度链接

Posted

技术标签:

【中文标题】在电子应用程序中实现延迟深度链接【英文标题】:Implement deferred deep linking in electron app 【发布时间】:2020-05-14 16:24:49 【问题描述】:

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

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

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

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

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

我见过this page,但找不到足够的信息来实现这一目标。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于在电子应用程序中实现延迟深度链接的主要内容,如果未能解决你的问题,请参考以下文章

在 React Native 应用程序中使用 Branch.io 在 iOS 中延迟深度链接

iOS 中的延迟深度链接

如何在 ios 的新 facebook sdk 中实现深度链接?

在 Localytics 推送通知中实现深度链接

iOS 9 与第三方 Mandrill/MailChimp 深度链接

如何在java中实现延迟几秒钟