在 Android 上使用 Chrome 打开 android-应用方案
Open android-app scheme with Chrome on Android
我想知道如何配置我的应用程序才能使用 android-app://application.id
打开它?
adb shell am start android-app://application.id
URI_ANDROID_APP_SCHEME 似乎无法像记录的那样工作。相反 Chrome 和 Firefox 只打开 market://
link 到我的应用程序。
对于 Chrome 我发现 a documentation 只描述了 intent://
方案。
当 Intent 过滤器包含 DEFAULT
和 BROWSABLE
类别时,它适用于 Firefox.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
您必须在 intent-filter
中为您的组件添加 <data../>
描述 URI,就像这样,
<intent-filter>
...
<data android:scheme="android-app"/>
</intent-filter>
并在您的站点部分定义这样的意图
intent:#Intent;scheme=android-app;package=your_package;end
更新。
没有意识到该方案是保留方案,尽管我的解决方案适用于您定义的任何方案。
我查找了 Intent 的来源 class 看来你必须像这样定义你的 URI
android-app://your_package
或
android-app://your_package/
#Intent;action=com.example.MY_ACTION;end
Android Intent 中 parseUri
方法的第一行 class
final boolean androidApp = uri.startsWith("android-app:");
值得一提:此方案是在 API 22 添加的。
我已经测试过它可以与 a
标签一起使用,正如@tynn 在评论中提到的,window.open()
和 location.href
以及 不适用于地址栏在Chrome.
我想知道如何配置我的应用程序才能使用 android-app://application.id
打开它?
adb shell am start android-app://application.id
URI_ANDROID_APP_SCHEME 似乎无法像记录的那样工作。相反 Chrome 和 Firefox 只打开 market://
link 到我的应用程序。
对于 Chrome 我发现 a documentation 只描述了 intent://
方案。
当 Intent 过滤器包含 DEFAULT
和 BROWSABLE
类别时,它适用于 Firefox.
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
您必须在 intent-filter
中为您的组件添加 <data../>
描述 URI,就像这样,
<intent-filter>
...
<data android:scheme="android-app"/>
</intent-filter>
并在您的站点部分定义这样的意图
intent:#Intent;scheme=android-app;package=your_package;end
更新。 没有意识到该方案是保留方案,尽管我的解决方案适用于您定义的任何方案。 我查找了 Intent 的来源 class 看来你必须像这样定义你的 URI
android-app://your_package
或
android-app://your_package/
#Intent;action=com.example.MY_ACTION;end
Android Intent 中 parseUri
方法的第一行 class
final boolean androidApp = uri.startsWith("android-app:");
值得一提:此方案是在 API 22 添加的。
我已经测试过它可以与 a
标签一起使用,正如@tynn 在评论中提到的,window.open()
和 location.href
以及 不适用于地址栏在Chrome.