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

时间:2015-05-27 08:25:21

标签: ios jailbreak

刚才,我在Xcode6.3.1上创建了一个基于Single View Application的项目,然后在Main.storyboard上创建了一个按钮。触摸按钮时代码如下:

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);

但它没有用。 然后我喜欢这个网站告诉我,Launch other application without URL schema in iphone? 它也没用。请帮我。 我的设备是iPhone4s,iOS 7.1.2,越狱。

2 个答案:

答案 0 :(得分:1)

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

有一种称为URL scheme的机制,可用于从应用内部打开应用。但为此你需要在你的plist文件中做正确的url schemens setUp。我强烈认为你没有看这个选项。

*还有另一种严格不推荐的方法(JAILBREAK PHONES除外)API是私有的,但你可以尝试一下&享受发展模式。

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

如果你想看到一个有趣的演示,请在手机和手机中run this app。查看 Apple Watch 样式,弹出板,列出所有应用程序&可以随时启动。

希望能更好地了解私有api的用法。

答案 1 :(得分:0)

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