游戏中心 URL 方案

Posted

技术标签:

【中文标题】游戏中心 URL 方案【英文标题】:Game Center URL scheme 【发布时间】:2011-06-03 10:57:15 【问题描述】:

可以使用以下方法从您自己的应用中打开 Game Center 应用:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:"]];

有没有办法在特定游戏的页面上打开它?

【问题讨论】:

除了使用此处概述的正常 GameKit 交互之外,您还想做什么? developer.apple.com/library/ios/#documentation/… 虽然可以在应用程序内显示排行榜和成就,但我希望能够通过按钮打开实际的 Game Center 应用程序并直接转到我的应用程序的“页面”。跨度> 另一个原因:如果用户没有登录 Game Center 并试图访问您的应用程序中需要它的功能,将他们引导到 Game Center 应用程序登录可能会有所帮助。 【参考方案1】:

我尝试了许多不同的组合。从 iBook 缺乏这样的功能、缺乏文档以及我相信你已经发现——互联网上缺乏信息——我会说有人可能不得不暴力破解 URL弄清楚(如果它设置为通过 URL 访问单个应用程序)。以下是我尝试过的一些:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:id350536422"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:us/app/cheese-moon/id350536422"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:games/"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:350536422"]];

更新

我梳理了操作系统的内部结构,发现了 Game Center 的 URL 解析模式:

您需要精通正则表达式才能使用所有这些。以下是我为您输入的一些内容:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/me/account"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/me/signout"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/friends/recommendations"]];
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter:/games/recommendations"]];

【讨论】:

有见地。为特定游戏打开 Game Center 的最可能 URL 是:^/games/game/.+ 但是我扔掉了所有我能想到的东西,比如 gamecenter:/games/game/cut-the-rope 或带有 ID,但没有任何效果. 如何在 iOS7 中进行这项工作。在 iOS7 中,您必须转到设置应用程序才能从游戏中心注销。是否有一个 url 方案可以将我们带到设置页面? @Him 我还没有在 iOS7 中检查过这个。如果我这样做,我会回帖。【参考方案2】:

Cirrostratus 的答案中使用的示例 URL 缺少一些位。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/me/"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/friends/"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"gamecenter://static.gc.apple.com/games/"]];

这些 URL 似乎适用于我在 iOS 6 和 7 上。我假设如果你登录了一个沙盒游戏中心帐户,你必须改用 sandbox.gc.apple.com。我试图通过/games/game/<id>//friends/player/<id>/ 进入特定的游戏或朋友页面,但我尝试的任何ID 似乎都不起作用。对于朋友 URL,我会转到一个空白的朋友页面。

即使有人确实弄清楚了,因为它是无证的,Apple 可能会在未来随时更改,所以我不会将这样的 URL 硬编码到应用程序中。

【讨论】:

【参考方案3】:

仅使用此例程。

    - (void)showGameCenter


GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];

    if (gameCenterController != nil)
    
        gameCenterController.gameCenterDelegate = self;
        gameCenterController.viewState = GKGameCenterViewControllerStateDefault;       
        [self presentViewController: gameCenterController animated: YES completion:nil];

    

【讨论】:

以上是关于游戏中心 URL 方案的主要内容,如果未能解决你的问题,请参考以下文章

什么是向 Google 游戏服务注册的服务器应用程序形式的 Android 游戏中的启动 URL

Android游戏源码下载

如何从单视图应用程序启动 cocos2D 游戏

loadrunner 游戏脚本开发

游戏中的配置变量!框架

监控ActiceMQ_Url和监控游戏用户金币获得