从浏览器启动自定义应用程序

时间:2014-10-22 12:46:13

标签: web hyperlink

我一直在寻找SO和其他在线资源,但似乎无法确定如何完成。我想知道像磁力链接这样的东西如何在torrent网站上运行。它们会自动打开并应用并传递相应的参数。我想知道如何创建一个从网上发送自定义程序参数?

由于

s654m

1 个答案:

答案 0 :(得分:1)

我不会说这是一个答案,但实际上评论太长了。

应用程序倾向于注册为可以打开特定方案的权限。我不知道它在桌面应用程序中是如何完成的(特别是因为取决于每个操作系统,它会有所不同),但在Android上,您可以通过Intent Filters捕获方案或基本网址。

它的工作方式(我非常确定该功能是跨操作系统)是:

  1. 您的应用告诉系统它可以"阅读"特定方案或基本网址(可以是magnet://甚至http://www.twitter.com/)。
  2. 当您尝试打开URI(统一资源标识符,可以包含URL的超级组)时,系统会搜索为该类URI注册的任何应用程序。我想它会从更具体和完整的格式运行到基础。例如,可以按以下顺序跟踪此推文:https://twitter.com/korcholis/status/491724155176222720
  3. 这个随机的Twitter客户端获取完整的URI并做相应的事情。
  4. 如您所见,没有人有机会跟踪https://,因为另一个应用抓住了之前的URI。在这种情况下,没有人可以成为您的浏览器。

    它还以某种方式定义了默认值。这是浏览器倾向于成为您选择的默认浏览器的真正关键。这只是告诉您他们希望成为捕获http://https://以及可能更多的默认应用程序。

    这里的真正奇迹是,只要有一个应用程序捕获一个方案,你就可以设置你想要的那个。例如,如果开发人员想要在他们之间共享任务,那么来自同一开发人员的应用程序包含相同的方案是一种常见做法。这可确保用户必须使用一组应用程序。因此,一个应用程序可以提供如下数据:

    my-own-scheme://user/12
    

    注册另一个应用以获取以

    开头的链接
    my-own-scheme://
    

    所以,如果你想制定自己的计划,只要他们不与其他人发生冲突就行了。如果你想阅读其他方案,那么,由您来搜索它。看到?这不是一个真正的答案,但我希望它几乎消除了所有疑问。