有个想法 就用SpringBoard 打开app,有没那个大神实现了 给个研究的思路!或者这个想法不靠谱!
1 个赞
记得看过几个帖子说唤醒App的,感觉你可以翻一下
可行,有对应的api
好的 我去找找
记得这个api叫什么吗
谢谢 大佬
还有个方法 就是 SpringBoard 的 - (void)applicationOpenURL:(id)arg1;
这个方法用法和正向一样
[SpringBoard applicationOpenURL:[NSURL URLWithString:@“BundleID://”]];
亲测可行
备注 (我的是 IOS10.2)
提示不支持的URL:
尚未载入此URL,
BundleID://com.tencent.live4iphone
提示不行呢。
提示不支持的URL:
尚未载入此URL,
BundleID://com.tencent.live4iphone
我通过一下的方法可以解决,但是呢,感觉不是很好,如果能直接通过SpringBoard是最好的,但是SpringBoard调用的方法不行。
Class LSApplicationWorkspace_class = objc_getClass("LSApplicationWorkspace");
NSObject* workspace = [LSApplicationWorkspace_class performSelector:@selector(defaultWorkspace)];
BOOL isInstall = [workspace performSelector:@selector(applicationIsInstalled:) withObject:@"com.tencent.xin"];
if (isInstall) {
//通过bundle id。打开一个APP
[workspace performSelector:@selector(openApplicationWithBundleID:) withObject:@"com.tencent.xin"];
}else{
NSLog(@"您还没安装");
}
1 个赞
int launchApp(char* bundleID)
{
return SBSLaunchApplicationWithIdentifier((__bridge CFStringRef)[[NSString alloc] initWithUTF8String:bundleID], NO);
}
[NSURL URLWithString:@“QQ://”] 你怎么不可以直接跟踪下方法 我说错了 抱歉
BundleID 是你要打开的app,BundleID是要替换的内容
具体你可以hook这个方法 跟踪下 就可以知道你要打开输入的值
NSError *error = nil;
[%c(SSSpringBoardUtility) launchApplicationWithIdentifier:@“com.ownbook.notes” options:nil error:&error];