【问题标题】:Open Android app from Chrome browser从 Chrome 浏览器打开 Android 应用
【发布时间】:2013-08-17 02:11:28
【问题描述】:

我一直在尝试制作一个在浏览器中输入特定网址时自动打开的应用程序。为此,我一直在清单中使用意图过滤器,如下所示:

<intent-filter>
            <data android:scheme="http" android:host="maltapark.com"/>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT"></category>
            <category android:name="android.intent.category.BROWSABLE"></category>
</intent-filter>

这工作正常,但只在我的默认网络浏览器中。当我使用 chrome 时,该应用程序无法打开。 我也尝试过使用 firefox,它只打开我的应用程序,其中包含一些但不是所有 URL,例如 abc://test。

请问有没有办法让我的应用打开,而不管使用的浏览器或 URL 是什么?

【问题讨论】:

    标签: android url browser


    【解决方案1】:

    您可以使用intent 方案,如explained here。 “Android 浏览器”可能支持也可能不支持,您可能不得不依赖 iframe。 FireFox 的作用是任何人的猜测,但我个人认为 FireFox 不是 Android 平台上的有力竞争者。

    【讨论】:

    • 链接已失效。
    【解决方案2】:

    在清单中使用它

    <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="maltapark.com"
                    android:path="/"
                    android:scheme="TESTSCHEME" />
            </intent-filter>
    

    并在标签a中使用它

    "intent://maltapark.com/#Intent;scheme=TESTSCHEME;package=com.YOURPACKAGENAME.www;end"
    

    这对我有用

    【讨论】:

      【解决方案3】:

      您试图通过您的应用拦截的 URL 是什么?您提到它不适用于 abc://test 之类的东西,这是正确的。

      您的意图过滤器声明它想要拦截与http://maltapark.com 匹配的网址。

      如果网址不匹配,则不会打开。

      【讨论】:

        【解决方案4】:

        尝试在 andriod:scheme 中加入 '*' 通配符,也许还有 andriod:host 属性(如果你需要的话)。

        【讨论】:

          猜你喜欢
          • 2015-09-28
          • 2017-02-19
          • 2018-05-20
          • 1970-01-01
          • 2012-05-07
          • 2017-11-06
          • 2013-04-30
          • 2014-04-22
          • 1970-01-01
          相关资源
          最近更新 更多