我已在我的应用程序中启用了应用程序链接。它工作正常。但是在我的应用程序中,有些情况下我无法处理传入的URL。在那种情况下,我想将该URL重定向到设备中的默认浏览器。
目前,我尝试使用意图使用URL打开浏览器,但它再次重定向到我的应用程序本身。应用链接的格式为->
https://<domain>/<prefix>/<params>
因此,根据参数,我想处理应用程序本身中的应用程序链接或将其重定向到默认浏览器。以下是我尝试使用上述网址打开浏览器的代码
val browserIntent = Intent(Intent.ACTION_VIEW, Uri.parse(appLinkModel.url))
browserIntent.addCategory(Intent.CATEGORY_APP_BROWSER)
browserIntent.resolveActivity(packageManager)?.let {
startActivity(browserIntent)
}
我尝试排除addCategory()行,但结果相同。应用程序崩溃(因此resolveActivity()),或者应用程序在循环中自行打开。
我想做的事
因此,我要执行的操作是将URL重定向到默认浏览器(或在没有我的应用程序的情况下显示选择器),而不会一次又一次触发应用程序链接。那有可能吗?
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);
此技术(使用makeMainSelectorActivity)将强制链接在设备的默认浏览器中打开
注意-makeMainSelectorActivity仅适用于API级别15及以上。
如果您需要支持低于15的API级别,可以尝试使用此技巧
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句