像Chrome一样的Android深层链接Firefox

时间:2019-03-09 13:05:38

标签: firefox android-intent deep-linking android-deep-link

对于这个问题,我有无人认领的赏金。如果有人能够提供符合我标准的有效答案,我将奖励他们。由于赏金已过期,因此看不到,但事实发生后,我可以奖励可接受的答案。

我的应用设置了意图过滤器,该过滤器可以在我使用Chrome时按需运行。不幸的是,Firefox并没有以相同的方式实现深层链接。当我点击Firefox中的链接时,它在地址栏的末尾显示了一个小的Android图标。如果点击该按钮,它将在Firefox中打开我的应用程序 ,我不喜欢这种行为。使用Chrome,它只需打开应用程序(在提示您首次选择应用程序之后)

更新:单任务不起作用,它具有resuming activity not being able to get the extras from the intent that launched it.

令人讨厌的副作用

这与其他深层Firefox问题(thisthisthisthisthisthis ,和this),因为这些问题是关于如何使深层链接完全起作用 ,而我了解深层链接在Firefox中是如何工作的,并且它们已经对我有用了 >,但我想更改行为...

我在问:如何在可能的情况下,如何通过Firefox的深层链接打开我的应用程序的现有实例,并使其行为与Chrome相同?不想使用iframe。

我已经实现了http和https意图过滤器,如下所示:

<!-- https -->
<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:host="myappurl"
      android:pathPrefix="/myprefix"
      android:scheme="https" />
</intent-filter>
<!-- http -->
<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:host="myappurl"
        android:pathPrefix="/myprefix"
        android:scheme="http" />
</intent-filter>

如果您要提供解决方案,请提供一个清晰的示例,其中包含有关代码应在清单中的位置(如果有的话)以及其副作用的上下文(请参见上面的链接,单任务)对此不起作用)

1 个答案:

答案 0 :(得分:1)

您必须在活动标签下放置android:launchMode="singleTask"

这可以防止打开多个实例。如果您的应用已经打开,它将启动它,否则它将创建一个新实例。