浏览器自定义标签链接不能启动应用程序,但手机chrome浏览器可以。

问题描述 投票:0回答:1

我试图通过浏览器链接启动我的安卓应用程序。

当我通过chrome浏览器打开该链接时,它成功地显示了应用程序对话框选择器,其中显示了该方案可用的应用程序,如下所示。

应用程序对话框选择器

但当通过Chrome自定义选项卡打开链接时,它只是重定向到该网站,而不显示应用程序对话框选取器。.

我需要它启动应用程序或显示对话框选择器时,从另一个应用程序(如Gmail)打开的链接,打开应用程序中的浏览器,而不仅仅是在chrome浏览器。

这里是当前的意图-过滤器,我有。

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

如果有人能指出将是一个很大的帮助。谢谢你的帮助

android android-intent deep-linking
1个回答
0
投票

所以如果有人遇到同样的问题,我是这样做的。要想用Chrome自定义标签浏览器启动你的应用,你需要把你的方案做成非网页链接格式,并把它做成自定义方案(如下图示例)。因为显然,Chrome自定义标签页将网页链接方案视为普通链接因此在浏览器中启动它。

所以从

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

将方案改为自定义方案,这样一来,你的应用程序的方案将是唯一被浏览器处理的方案。这是一个链接的例子,其方案如下~myapp:/myapp.app(注意这个链接在android应用中是不能点击的,但你可以把它放在你网站的html锚标签的href中)。

        <intent-filter>
            <data 
                android:scheme="myapp" 
                android:host="myapp.app" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />        
        </intent-filter>
© www.soinside.com 2019 - 2024. All rights reserved.