从URL打开应用程序适用于Android版Firefox但不适用于谷歌浏览器

时间:2015-04-09 10:09:59

标签: android google-chrome firefox intentfilter

我想在用户点击我的网页链接时打开我的Android应用程序(最好是从Facebook分享帖子,但让我们从普通网址开始)。

为实现这一目标,我创建了一个活动UrlReceiver,并将此代码添加到我的AndroidManifest.xml文件中(网址仅用于测试目的):

<activity
        android:name=".main.core.UrlReceiver"
        android:exported="true">
        <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="martinfowler.com"
                android:pathPrefix="/"
                android:scheme="http"/>
            <data
                android:host="www.martinfowler.com"
                android:pathPrefix="/"
                android:scheme="http"/>
            <data
                android:host="test"
                android:scheme="myapp"/>
        </intent-filter>
</activity>

这适用于 Firefox for Android ,当我输入myapp://test/时,它会自动打开我的应用,当我输入martinfowler.com时,网址旁边有一个Android头这导致了我的应用程序。这很好。

谷歌浏览器 。当我输入myapp://test/时,它会启动Google搜索,当我输入martinfowler.com时,它会打开网页。

我开始在网上挖掘这个并发现这个文档:https://developer.chrome.com/multidevice/android/intents,开辟了自定义模式不再适用于Chrome,所以我尝试使用这个URL(根据文档):

intent://test/#Intent;scheme=myapp;package=com.my.app;end
intent://#Intent;scheme=myapp;package=com.my.app;end
intent://test/#Intent;package=com.my.app;scheme=myapp;end
intent://#Intent;package=com.my.app;scheme=myapp;end

但这些也开始谷歌搜索。我该怎么办,从谷歌浏览器中的URL打开我的应用程序?

我在KitKat和Lolipop上测试了这个。

1 个答案:

答案 0 :(得分:5)

问题在于我一直输入(或复制)网址到Chrome Omnibox(搜索栏)并根据此问题:https://code.google.com/p/chromium/issues/detail?id=451956它是不再支持:

  

http://crbug.com/331571我们决定不启动意图   原始导航是从用户输入开始的,因为我们想到了   用户通常不会在键入时离开Chrome   进入多功能框的URL。

因此,从Google Chrome中的网址打开应用仅适用于链接点按,并且在使用搜索栏时无效。