从Twitter深层链接到我的应用程序 - 无法正常工作

时间:2017-07-20 11:27:17

标签: android android-intent twitter deep-linking intentfilter

我在清单中有以下意图过滤器来接受深层链接网址:

<intent-filter>
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />

    <data android:scheme="http" />
    <data android:scheme="https" />
    <data android:host="www.example.com"/>
    <data android:host="example.com"/>
    <data android:pathPattern="/path.*" />

</intent-filter>

点击以下链接时,一切都很有效:

然而 - 在Twitter上,网址会自动缩短为以下内容:

shortened twitter url example

(对不起pic - SO不会让我发布一个缩短的链接示例......是吗?)

当用户点击链接时,此URL会被解析为真实的URL - 但是(!!),此时一旦将URL解析为与上述示例匹配的URL,android似乎不再关心我的意图过滤器,并在浏览器中打开URL。

如何解决这个问题,以便我的应用程序的网址从Twitter正确打开我的应用程序(或至少打开应用程序选择器)?

1 个答案:

答案 0 :(得分:1)

您是对的 - 使用App Links,Android会检查正在打开的实际网址以查看是否已注册任何应用来处理它。如果缩短了URL(假设缩短的域本身未注册,显然t.co就是这种情况),则不考虑通过重定向到达的后续URL。 iOS Universal Links的工作方式完全相同。

在Android上,您有两种选择:

  1. 在目标网址上放置自定义URI方案重定向。然后,当缩短的链接结算时,您的用户将最终进入应用程序。当然,您还需要something like this来处理未安装应用程序的情况。这就是我们在Branch.io为Android做的事情(完全披露:我在分支机构团队中)。
  2. 在目标网址上显示深层链接的CTA按钮/链接/智能横幅广告。这就是必须在iOS上为Twitter和Facebook等应用程序工作的方式,但在Android上你还有自定义URI方案选项,所以这不太理想。