求助:如何通过链接在Steam安卓App中打开Steam游戏(跳转后闪屏退回原应用)
解决Steam安卓App跳转游戏页面空白后退回的问题
我之前也碰到过一模一样的情况!其他App的跳转都正常,唯独Steam App跳转会先空白再退回自己的应用,核心原因其实是Steam对唤起它的链接格式有特定要求,普通的网页URL它没法正确解析处理。下面是我亲测有效的解决方案:
1. 改用Steam专属的Deep Link格式
Steam安卓App只认它自己的Scheme链接,别用网页版的https://store.steampowered.com/app/<游戏ID>/,换成下面两种格式之一:
steam://store/<游戏ID>(直接打开游戏商店页)steam://openurl/https://store.steampowered.com/app/<游戏ID>/(通过Steam App打开网页链接)
举个实际例子,《CS:GO》的游戏ID是10,那对应的链接就是steam://store/10,你可以先在手机浏览器里输入这个链接试试,正常情况下会直接唤起Steam App并跳转到游戏页面。
2. 正确配置跳转Intent(以Android为例)
如果是Android应用,跳转的时候要确保Intent的设置没问题,还要处理Steam App未安装的情况:
val gameId = "10" // 替换成你的游戏ID // 优先尝试用Steam Scheme跳转 val steamIntent = Intent(Intent.ACTION_VIEW, Uri.parse("steam://store/$gameId")) steamIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) try { startActivity(steamIntent) } catch (e: ActivityNotFoundException) { // 没装Steam App的话, fallback到浏览器打开网页 val webIntent = Intent(Intent.ACTION_VIEW, Uri.parse("https://store.steampowered.com/app/$gameId/")) startActivity(webIntent) }
3. 适配Android 11+的包可见性限制
如果你的应用目标是Android 11(API 30)及以上,系统默认会限制应用查询其他App的存在,所以得在AndroidManifest.xml里添加Steam App的包名声明,让系统允许你唤起它:
<queries> <!-- Steam安卓App的官方包名 --> <package android:name="com.valvesoftware.android.steam.community" /> </queries>
没加这个的话,可能会出现明明装了Steam App却检测不到,直接跳到浏览器的情况,甚至导致跳转失败退回你的应用。
4. 多测试几种Steam链接格式
不同地区或者Steam App的版本可能对格式支持有点差异,如果上面的steam://store/<游戏ID>不行,试试这两个:
steam://app/<游戏ID>steam://store/app/<游戏ID>
我当时就是试了第二种才成功的,你可以多测几个格式找最适合的。
按上面的步骤改完之后,应该就能正常唤起Steam App打开游戏页面了,不会再出现空白后退回的情况。
内容的提问来源于stack exchange,提问作者trix




