游戏中心 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 方案的主要内容,如果未能解决你的问题,请参考以下文章