К сожалению, нет, если вы не можете выяснить, как запустить приложение по идентификатору пакета в среде без джейлбрейка.
В противном случае, если вы находитесь в среде джейлбрейка, вы можете использовать следующую команду для запускаприложение по идентификатору пакета:
Использование:
[self launch:(@"com.apple.mobilesafari")];
Код:
#pragma mark - Launch Application
-(void)launch:(NSString *)bundle {
Class SBApplicationController = objc_getClass("SBApplicationController");
id appController = [SBApplicationController sharedInstance];
NSArray *apps = [appController applicationsWithBundleIdentifier: bundle];
if ([apps count] > 0) {
//Wait .5 seconds.. then launch.
[self performSelector:@selector(launchTheApp:) withObject:[apps objectAtIndex:0] afterDelay: 0.5];
} else {
id app = [appController applicationWithDisplayIdentifier: bundle];
if (app) {
//Wait .5 seconds.. then launch.
[self performSelector:@selector(launchTheApp:) withObject:app afterDelay: 0.5];
}
}
}
-(void)launchTheApp:(id)app {
Class SBUIController = objc_getClass("SBUIController");
id uiController = [SBUIController sharedInstance];
if([uiController respondsToSelector:@selector(animateLaunchApplication:)]) {
[uiController animateLaunchApplication:app animateDefaultImage:YES];
} else {
[uiController activateApplicationAnimated:app];
}
}
Примечание:
ЗапускПриложение таким образом, в основном, аналогично нажатию на значок Safari в SpringBoard.Это только запустит в приложение, возобновив любой веб-сеанс, который был ранее активен.