如何在iOS上通过捆绑ID打开应用程序

就在现在,我在Xcode6.3.1上创build一个基于Single View Application的项目,然后在Main.storyboard上创build一个button。 触摸button时代码就是这样的:

NSString * bundleId = @"com.apple.iBooks"; void* sbServices = dlopen("/System/Library/PrivateFrameworks/SpringBoardServices.framework/SpringBoardServices", RTLD_LAZY); int (*SBSLaunchApplicationWithIdentifier)(CFStringRef identifier, Boolean suspended) = dlsym(sbServices, "SBSLaunchApplicationWithIdentifier"); const char *strBundleId = [bundleId cStringUsingEncoding:NSUTF8StringEncoding]; int result = SBSLaunchApplicationWithIdentifier((__bridge CFStringRef)bundleId, NO); dlclose(sbServices); 

但它没有工作。 然后我喜欢这个网站告诉我, 启动其他应用程序没有在iPhone的URL架构? 它也没有工作。 请帮帮我。 我的设备是iPhone4s,iOS 7.1.2,越狱。

*对于越狱你可以继续这个*

有一种称为URL scheme ,可用于从您的应用程序内部打开应用程序。 但为此,您需要在plist文件中执行正确的URL schemens setUp。 我强烈地感觉到你并没有看这个选项。

*除了JAILBREAK PHONES之外,还有另外一种方法是不公开(不包括JAILBREAK PHONES) ,但是您可以在开发模式下尝试并享受它。

  • openApplicationWithBundleID :使用包标识符打开应用程序。
  • - (NSArray*)allInstalledApplications; :这将列出您的设备上的所有已安装的应用程序。

如果你想看到一个有趣的演示,请在手机上运行这个应用程序 ,并看到苹果手表风格,弹簧板,所有列出的应用程序,可以在自来水下启动。

希望能给出更好的私人api使用的想法。

从Cydia安装com.conradkramer.open 打开的包,你可以通过SSH或从应用程序从shell运行open com.bundle.id