【问题标题】:How to use [[UIApplication sharedApplication] openURL:] open other app?如何使用 [[UIApplication sharedApplication] openURL:] 打开其他应用程序?
【发布时间】:2011-05-25 10:43:56
【问题描述】:

我按照http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html 指令在 app2(FontTest) 中打开 app1(GlassButton)。

FontTest的打开方法如下:

-(void)open {

  BOOL res = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"glassbutton://"]];

  if (res) {

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"glassbutton://"]];

  }

}

“res”的值为“YES”,但调用 openURL 方法后没有任何反应。 “FontTest”的信息列表如下:

URL Schemes: glassbutton

URL identifier: com.yourcompany.glassbutton

我尝试通过“twitter://”和“fb://”成功打开 twitter 和 facebook 应用程序。但是我不知道为什么我无法打开这个小应用程序。我不确定是否有任何事情/步骤错误或丢失?需要我为 FontTest 处理- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url,如果是,如何处理?你能帮帮我吗?提前致谢!

【问题讨论】:

  • 说如果 glassbutton 是另一个应用程序的 url 方案,那么你为什么要在 FontTestinfo.plist 中声明它。这是不对的。
  • 嗨,Deepak,感谢您的提醒。

标签: iphone uiapplication openurl


【解决方案1】:

要请求启动您的应用,请使用以下内容:

NSString *urlString= @"glassbutton://com.yourcompany.glassbutton";
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlString]];

然后,在 glassbutton 应用中,您需要在应用委托方法中处理任何特殊行为:

 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {

    //your app specific code here for handling the launch

    return YES;
 }

请注意,在您打开的应用程序中,上述委托方法只会在以下方法被调用后被调用:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

相应处理,祝你好运。

【讨论】:

  • NSString *urlString= @"glassbutton://com.yourcompany.glassbutton";
  • 对了,什么是 glassbutton?
  • 这是原始问题中提到的 URL 方案。最好的猜测是它是对相关应用程序或生产它的公司的特定引用 - 您可以在应用程序信息列表的相关部分中根据需要定义您的 URL 方案。
猜你喜欢
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 2011-08-06
  • 2014-05-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多