如何仅将我的应用程序用于具有特定前缀的 intent-filter URL?
How to use only my app for intent-filter URL with specific prefix?
假设我们有一个 activity 来解析具有特定路径前缀的外部 URL 链接。这不是问题。问题是有一种方法可以使这些链接只能通过我的应用程序解决。
例如:
我们有这个意图过滤器
<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="example.com"
android:pathPrefix="/specific_prefix/"
android:scheme="http" />
</intent-filter>
我只希望我的应用程序用于 "example.com/specific_prefix/etc"。如果那个晚上可以?
And I want only my app to be used for example for "example.com/specific_prefix/etc". If that eve possible?
没有
首先,如何解释 URL 取决于解释 URL 的应用程序。一些 Web 浏览器在遇到 http
URL 时总是会自行处理,而不是查看 third-party 应用程序是否已宣传支持它。
其次,如果有两个或多个应用程序声称支持某个操作,则用户选择使用哪个。在您的情况下,Web 浏览器和您的应用程序将声称可以处理 URL,并且用户可以选择他们想要的任何一个。
使用 Android 6.0 的 app links,您可以默认避免选择器,因此如果出现选择器,用户将直接被带到您的应用程序。不过,用户可以在“设置”中禁用此功能。
假设我们有一个 activity 来解析具有特定路径前缀的外部 URL 链接。这不是问题。问题是有一种方法可以使这些链接只能通过我的应用程序解决。 例如: 我们有这个意图过滤器
<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="example.com"
android:pathPrefix="/specific_prefix/"
android:scheme="http" />
</intent-filter>
我只希望我的应用程序用于 "example.com/specific_prefix/etc"。如果那个晚上可以?
And I want only my app to be used for example for "example.com/specific_prefix/etc". If that eve possible?
没有
首先,如何解释 URL 取决于解释 URL 的应用程序。一些 Web 浏览器在遇到 http
URL 时总是会自行处理,而不是查看 third-party 应用程序是否已宣传支持它。
其次,如果有两个或多个应用程序声称支持某个操作,则用户选择使用哪个。在您的情况下,Web 浏览器和您的应用程序将声称可以处理 URL,并且用户可以选择他们想要的任何一个。
使用 Android 6.0 的 app links,您可以默认避免选择器,因此如果出现选择器,用户将直接被带到您的应用程序。不过,用户可以在“设置”中禁用此功能。