繁体   English   中英

启动应用程序(如果已安装)或重定向下载 - 窗口

[英]Launch app if installed or redirect to download - windows

Stack Overflown这个问题中提到

在每个repo上,GitHub都有一个标记为“Clone in Desktop”的按钮(例如: https//github.com/github/developer.github.com )。 如果您安装了GitHub for Mac,则href类似于“github-mac:// openRepo / https://github.com/github/developer.github.com ”。 这将打开GitHub for Mac并提供克隆回购。 如果不这样做,则href为“ http://mac.github.io ”。 这是GitHub for Mac的下载页面。 我想在我的网站上做类似的事情:如果已安装,请打开我的应用程序,如果没有则重定向下载。 如何才能最好地完成?

答案是关于Github Conduit ,但据我所知,Github Conduit仅适用于Mac的Github

我有同样的问题,仅适用于Windows操作系统。 GitHub如何知道GitHub是否安装在计算机上?


正如deepcurious在说他们的答案 ,我们需要使用下面的代码,如果协议注册的检查:

$("a[href*='github-windows://']").click(function(e) {
    var el = $(this);
    setTimeout(function() {
        window.location = el.data("data-href-alt");
    }, 200);

    // once you do the custom-uri, it should properly execute the handler, otherwise, the settimeout that you set before will kick in
    window.location = el.data("href");

    e.preventDefault();
});

我有以下HTML链接:

<a href="github-windows://openRepo/https://github.com/jquery/api.jqueryui.com" data-href-alt="https://www.example.com/app-not-installed">Clone in Desktop</a>

如果安装了应用程序,Google Chrome会给我一个外部协议请求(如下所示),因此我认为它应该可以正常工作(尽管它在我的计算机上没有任何作用)。 但是,如果未安装该应用程序,则不会转到data-href-alt页面。

例如,如果我在代码中的所有实例中将github-windows://更改为some-uninstalled-app:// ,则该链接不执行任何操作。

谷歌Chrome的外部协议请求

的确,GitHub Conduit仅适用于Mac的GitHub。 那么GitHub网站如何确定是否安装了GitHub for Windows?

那么,在这方面,GitHub for Windows显然要复杂得多。 只有在安装了适用于Windows的GitHub并使用选项下的“添加帐户”按钮对您的帐户进行身份验证后,“仅在桌面中克隆”才能生效。

新增帐户

完成此操作后,只要您登录到GitHub for Windows的GitHub帐户,“Clone in Desktop”链接将具有github-windows://协议,而不是https://windows.github.com/链接。

克隆在桌面上

但是,如果您在没有安装GitHub for Windows的计算机上登录GitHub并单击按钮会发生什么? 它具有相同的链接,由于显而易见的原因不起作用。

协议没有理解

是的,GitHub显然盲目地假设当你在Windows计算机上使用你的帐户时,你必须安装GitHub for Windows。

您可以尝试使用JavaScript编写的跨浏览器自定义协议检测库: https//github.com/ismailhabib/custom-protocol-detection

...或者做一些hacky,比如在安装应用程序期间修改浏览器的用户代理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM