我对这个问题有一个无人认领的赏金。如果有人能够提供符合我标准的工作答案,我将以赏金奖励他们。这是不可见的,因为赏金已过期,但我可以在事实之后将其奖励给可接受的答案。
我的应用具有意图过滤器设置,可在我使用Chrome时按需运行。不幸的是,Firefox没有以同样的方式实现深层链接。当我点击Firefox中的链接时,它会在地址栏的末尾显示一个小的Android图标。如果我点击它,它将在Firefox中打开我的应用程序,我不喜欢这种行为。使用Chrome,它只需打开应用程序(在第一次提示您选择应用程序后)
更新:singletask不起作用,它有resuming activity not being able to get the extras from the intent that launched it.的令人发指的副作用
这不是其他深层链接Firefox问题(this,this,this,this,this,this和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>
如果您要提供解决方案,请提供一个明确的示例,其中包括代码应该在清单中的位置(如果有的话),以及副作用是什么(请参阅上面的链接 - singletask不起作用)为了这)
你必须将android:launchMode="singleTask"
放在你的活动标签下。
这可以防止打开多个实例。如果您的应用已经打开,它将启动它,否则它将创建一个新实例。