Android 深层链接如何在 Chrome OS 浏览器中运行?
How can Android deep links be made to work from the Chrome OS browser?
在网页上,我有一个 URL 对我的 Android 应用来说是一个很深的 link。它的形式是 myapp://myrequest?url=someurl
这是通过应用清单中的意图过滤器捕获的。我在 activity 的 onCreate()
中使用 getIntent().getData.getQueryParameter("url")
来获取 someurl
部分,这是我需要进一步处理的部分。意图过滤器的形式为:
<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="myapp"
android:host="myrequest" />
</intent-filter>
它在 Android 设备和通过 APK and/or ChromeOS 设备上的 Play 商店安装的 Android 浏览器上完美运行。但它不适用于本机 ChromeOS 浏览器。单击 link 时,会打开一个对话框,其中显示以下消息:
Google Chrome OS can't open this page
如何让它发挥作用?我必须以不同的方式格式化 URL 吗?我必须添加 and/or 修改 intent 过滤器吗?还是我必须对 ChromeOS 使用一些完全不同的方法?
经过反复试验,我注意到本机 ChromeOS 浏览器不喜欢使用自定义方案打开 Android 应用程序。
如果您改用 http
或 https
,浏览器会询问您是否要使用您的应用打开 URL。
示例:
<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="https"
android:host="my.app.com" />
</intent-filter>
要测试启动您的应用程序,请在浏览器控制台中使用 window.open("https://my.app.com");
。
在网页上,我有一个 URL 对我的 Android 应用来说是一个很深的 link。它的形式是 myapp://myrequest?url=someurl
这是通过应用清单中的意图过滤器捕获的。我在 activity 的 onCreate()
中使用 getIntent().getData.getQueryParameter("url")
来获取 someurl
部分,这是我需要进一步处理的部分。意图过滤器的形式为:
<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="myapp"
android:host="myrequest" />
</intent-filter>
它在 Android 设备和通过 APK and/or ChromeOS 设备上的 Play 商店安装的 Android 浏览器上完美运行。但它不适用于本机 ChromeOS 浏览器。单击 link 时,会打开一个对话框,其中显示以下消息:
Google Chrome OS can't open this page
如何让它发挥作用?我必须以不同的方式格式化 URL 吗?我必须添加 and/or 修改 intent 过滤器吗?还是我必须对 ChromeOS 使用一些完全不同的方法?
经过反复试验,我注意到本机 ChromeOS 浏览器不喜欢使用自定义方案打开 Android 应用程序。
如果您改用 http
或 https
,浏览器会询问您是否要使用您的应用打开 URL。
示例:
<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="https"
android:host="my.app.com" />
</intent-filter>
要测试启动您的应用程序,请在浏览器控制台中使用 window.open("https://my.app.com");
。