我想知道如何配置我的应用程序才能用android-app://application.id
打开它?
adb shell am start android-app://application.id
URI_ANDROID_APP_SCHEME似乎无法按文档所述工作。相反,Chrome和Firefox只打开我的应用程序的market://
链接。
对于Chrome,我发现了一份仅描述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
中添加描述URI的<data../>
,就像一样
<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
Androids Intent类中parseUri
方法的第一行
final boolean androidApp = uri.startsWith("android-app:");
值得一提的是:此方案是在API 22中添加的。
我已经测试过它能与a
标签一起使用,正如@tynn在评论中提到的,window.open()
和location.href
以及不能从Chrome中的地址栏工作。