刚才,我在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,越狱。
答案 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
。