6

我想知道如何配置我的应用程序才能打开它android-app://application.id

adb shell am start android-app://application.id

URI_ANDROID_APP_SCHEME似乎不像记录的那样工作。相反,Chrome 和 Firefox 只打开market://我的应用程序的链接。

对于 Chrome,我找到了仅描述该方案的文档。intent://

当意图过滤器包含DEFAULTandBROWSABLE类别时,它适用于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>
4

1 回答 1

3

您必须为您的组件添加<data../>描述 URI ,如下所示,intent-filter

<intent-filter>
   ...

   <data android:scheme="android-app"/>
</intent-filter>

并在您的网站部分定义这样的意图

intent:#Intent;scheme=android-app;package=your_package;end

更新。 没有意识到该方案是保留方案,尽管我的解决方案适用于您定义的任何方案。我查找了 Intent 类的来源,看来你必须像这样定义你的 URI

android-app://your_package

或者

android-app://your_package/ 
#Intent;action=com.example.MY_ACTION;end

parseUriAndroids Intent 类中方法的第一行

final boolean androidApp = uri.startsWith("android-app:");

值得一提的是:这个方案是在 API 22 上添加的。

我已经测试过它可以与a标签一起使用,正如@tynn 在评论中提到的那样,它也适用于 Chrome 中的地址栏,并且window.open()适用。location.href

于 2020-02-25T12:07:49.027 回答