【问题标题】:Chrome Custom tab links does not launch the app, but mobile chrome browser doesChrome 自定义选项卡链接不会启动应用程序,但移动版 chrome 浏览器会
【发布时间】:2020-05-19 06:31:31
【问题描述】:

我正在尝试通过浏览器链接启动我的 android 应用程序。

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

app dialog picker

但是当通过 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>

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

【问题讨论】:

  • “应用内浏览器”是什么意思?
  • 哦,抱歉这个模棱两可的术语。我所指的“应用内”一词是指单击应用程序中的链接时在应用程序中打开的网络浏览器。例如在 facebook 中,当您从页面单击网站链接时,它会打开它自己的浏览器,而不是设备中的默认浏览器(例如 Chrome)。它也不同于 WebView。希望有意义
  • 不明白。 when a link in the app is clicked。该链接将显示在哪里?那个浏览器是从哪里来的?什么样的浏览器?您是如何将其添加到您的应用中的?
  • 我找到了应用内浏览器术语。它被称为 Chrome 自定义标签 developer.chrome.com/multidevice/android/customtabs 。但是从它启动我的应用程序仍然没有运气。

标签: android android-intent deep-linking


【解决方案1】:

所以如果有人遇到同样的问题,这就是我所做的。要使用 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-16
    • 2014-06-24
    相关资源
    最近更新 更多