【问题标题】:Launching android application from the web从 Web 启动 android 应用程序
【发布时间】:2013-05-02 15:47:02
【问题描述】:

我在 Android 模拟器上安装了一个应用程序代码如下当我启动模拟器时,我在浏览器中输入“market.android.com”,我希望启动我的应用程序,但它没有开始

请回答,应用程序的正确工作可以由模拟器提供还是必须使用真实设备? (确切地说是从 android web 浏览器启动应用程序)

<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)的结果。

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

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

两者之间的权衡:

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

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

感谢您的帮助(和代码 sn-ps)

【问题讨论】:

    标签: android android-layout android-emulator android-widget android-preferences


    【解决方案1】:

    我的猜测是,您离打开应用程序只有一步之遥。不要在浏览器中输入 URL,您需要在其他地方有一个 URL。说,在短信中。您将在那里有某种文本和链接“http://market.android.com”。单击此链接时,您应该会看到一个对话框,其中包含使用浏览器或您的应用打开它的选项。

    对不起,如果我错误地理解了这个问题。

    【讨论】:

    • ...你是对的,但如果我有链接(即使是短信),我想从那里开始我的应用程序
    • 我在这里没有发现问题。您必须在对话框中看到您的应用选项。只需点击它,您的应用程序就会启动。
    【解决方案2】:

    当我启动模拟器时,我正在输入“market.android.com”并且我希望启动我的应用程序,但它没有启动

    它不应该在那种情况下开始,假设“输入”是指“输入地址栏”。浏览器通常只对超链接使用这些类型的&lt;intent-filter&gt; 结构。

    请回答,应用程序的正确工作可以由模拟器提供还是必须使用真机?

    如果你使用超链接,它应该可以在模拟器上运行。

    【讨论】:

    • @user2331971:有一个包含超链接的网页。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-26
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-20
    相关资源
    最近更新 更多