gpt4 book ai didi

android - 在 Android 浏览器中创建一个链接来启动我的应用程序?

转载 作者:IT老高 更新时间:2023-10-28 12:52:41 26 4
gpt4 key购买 nike

是否可以做如下链接:

<a href="anton://useful_info_for_anton_app">click me!</a>

导致我的 Anton 应用启动?

我知道这适用于具有市场协议(protocol)的 Android Market 应用程序,但其他应用程序可以做类似的事情吗?

以下是启动 Android Market 的链接示例:

<a href="market://search?q=pname:com.nytimes.android">click me!</a>

更新:我接受 eldarerathis 提供的答案效果很好,但我只想提一下,我在 <intent-filter> 的子元素的顺序上遇到了一些问题。标签。我建议你干脆再做一个<intent-filter>使用该标签中的新子元素来避免我遇到的问题。例如我的AndroidManifest.xml看起来像这样:

<activity android:name=".AntonWorld"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<data android:scheme="anton" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

最佳答案

请不要像这样使用您自己的自定义方案!!! URI 方案是一个网络全局 命名空间。您在世界范围内拥有“anton:”计划吗?不?那就别用了。

一种选择是拥有一个网站,并为该网站上的特定 URI 设置一个 Intent 过滤器。例如,这是 Market 在其网站上拦截 URI 的方式:

        <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" android:host="market.android.com"
android:path="/search" />
</intent-filter>

另外,还有“intent:”方案。这允许您将几乎任何 Intent 描述为 URI,浏览器将在单击时尝试启动该 URI。要构建这样的方案,最好的方法是编写代码来构建您要启动的Intent,然后打印intent.toUri(Intent.URI_INTENT_SCHEME)的结果。

您可以使用具有此 Intent 的操作来查找支持该操作的任何 Activity 。出于安全原因,浏览器会在启动前自动将 BROWSABLE 类别添加到 Intent 中;出于同样的原因,它还会删除您提供的任何显式组件。

如果你想确保它只启动你的应用程序,最好的使用方法是使用你自己的作用域操作并使用 Intent.setPackage() 表示 Intent 将只匹配你的应用程序包。

两者之间的权衡:

  • http URI 要求您拥有自己的域。用户将始终可以选择在浏览器中显示 URI。它具有非常好的后备属性,如果您的应用未安装,它们只会登陆您的网站。

  • intent URI 要求您的应用已经安装并且只能安装在 Android 手机上。几乎允许任何 Intent (但始终包含 BROWSABLE 类别并且不支持显式组件)。它们允许您将启动定向到仅您的应用程序,而用户无需选择转到浏览器或任何其他应用程序。

关于android - 在 Android 浏览器中创建一个链接来启动我的应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3469908/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com