You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:如何通过链接在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

火山引擎 最新活动