android - 如何让 Android 深层链接在 Chrome OS 浏览器中运行?

标签 android url deep-linking google-chrome-os androidappsonchromeos

在网页上,我有一个 URL,它是指向我的 Android 应用程序的深层链接。它的形式是 myapp://myrequest?url=someurl

这是通过应用 list 中的 Intent 过滤器捕获的。我在 Activity 的 onCreate() 中使用 getIntent().getData.getQueryParameter("url") 来获取 someurl 部分,这是我需要进一步处理的。 Intent 过滤器的形式是:

<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 和/或 ChromeOS 设备上的 Play 商店安装的 Android 浏览器上完美运行。但它不适用于 native ChromeOS 浏览器。单击链接时,将打开一个对话框,其中显示以下消息:

Google Chrome OS can't open this page

如何让它发挥作用?我必须以不同的方式设置 URL 格式吗?我是否必须添加和/或修改 Intent 过滤器?还是我必须对 ChromeOS 使用一些完全不同的方法?

最佳答案

经过反复试验,我注意到原生 ChromeOS 浏览器不喜欢使用自定义方案打开 Android 应用程序。 如果您改用 httphttps,浏览器会询问您是否要使用您的应用打开 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");

关于android - 如何让 Android 深层链接在 Chrome OS 浏览器中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61261073/

相关文章:

Android 短信捕获

java - 禁用 Dart 和 Kotlin 插件后 Android Studio 未运行

javascript - 使用 Javascript 为 Android(Nexus 7 平板电脑)获取正确的设备显示宽度

facebook - 为 Messenger Bots(又名深度链接)创建自定义入口点(链接)

ios - ionic 3 : Deeplink using Universal Link on iOS not opening app

android - 清除所有打开的以前的 Activity 在 android 5.0 中不起作用

android - 多个APK支持

javascript - 使用 javascript 和 jquery 更改 url

javascript - 使用 javascript 检查 URL 是否包含值

django - 将 URL 中的页码改为 "embed"的最佳方法是什么?