游戏中心URL方案

可以使用以下命令从您自己的应用程序打开Game Center应用程序:

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

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

我尝试了很多不同的组合。 从iBook缺乏这样的function判断,缺乏文档,我确信你已经发现 – 在互联网上缺乏信息 – 我会说有人可能不得不蛮力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"]]; 

UPDATE

我梳理了操作系统的内部,并找到了Game Center的URL解析模式:

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"]]; 

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///friends/player//去特定的游戏或朋友页面,但我尝试ID的任何东西似乎都不起作用。 对于朋友url,我转到一个空白的朋友页面。

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

只使用这个例程。

  - (void)showGameCenter { GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init]; if (gameCenterController != nil) { gameCenterController.gameCenterDelegate = self; gameCenterController.viewState = GKGameCenterViewControllerStateDefault; [self presentViewController: gameCenterController animated: YES completion:nil]; } }