Akh*_*man 11 android deep-linking android-app-links
我在我的应用程序中启用了应用程序链接。它工作正常。但是在我的应用程序中有一些场景我无法处理传入的 url。在这些情况下,我想将该 url 重定向到设备中的默认浏览器。
目前我尝试做的是使用意图打开带有 url 的浏览器,但它再次重定向到我的应用程序本身。应用程序链接的格式 ->
https://<domain>/<prefix>/<params>
Run Code Online (Sandbox Code Playgroud)
因此,根据参数,我想处理应用程序本身中的应用程序链接或将其重定向到默认浏览器。以下是我尝试使用上述网址打开浏览器的代码
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(appLinkModel.url))
browserIntent.addCategory(Intent.CATEGORY_APP_BROWSER)
browserIntent.resolveActivity(packageManager)?.let {
startActivity(browserIntent)
}
Run Code Online (Sandbox Code Playgroud)
我尝试排除 addCategory() 行,但结果是一样的。应用程序崩溃(因此出现了 resolveActivity()),或者应用程序在循环中自行打开。
我想做的事
所以我想要做的是将 url 重定向到默认浏览器(或显示一个没有我的应用程序的选择器),而不是一次又一次地触发应用程序链接。那么这可能吗?
Vin*_*hwa 15
String data = "example.com/your_url?param=some_param";
Intent defaultBrowser = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER);
defaultBrowser.setData(data);
startActivity(defaultBrowser);
Run Code Online (Sandbox Code Playgroud)
此技术(使用 makeMainSelectorActivity)将强制链接在设备的默认浏览器中打开
注意 - makeMainSelectorActivity仅适用于 API 级别 15 及更高级别。
如果你需要支持低于 15 的 API 级别,你可以试试这个hack
在中Kotlin,尝试使用makeMainSelectorActivity:
val defaultBrowser = Intent.makeMainSelectorActivity(Intent.ACTION_MAIN, Intent.CATEGORY_APP_BROWSER)
defaultBrowser.data = Uri.parse("https://yoururl.com/")
startActivity(defaultBrowser)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7305 次 |
| 最近记录: |