comment ouvrir une application par bundle id sur iOS

Tout à l'heure, je crée un projet basé sur Single View Application sur Xcode6.3.1, puis je crée un button sur Main.storyboard. Le code est comme ceci quand le button a touché:

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

Mais cela n'a pas fonctionné. Alors j'aime bien ce site dis-moi, Lancer une autre application sans schéma d'URL dans l'iphone? Ça n'a pas marché non plus. Aidez-moi, s'il vous plaît. Mon appareil est iPhone4s, iOS 7.1.2, jailbreaké.

* Pour la prison, vous pouvez continuer avec ceci *

Il existe un mécanisme connu sous le nom de URL scheme , qui peut être utilisé pour ouvrir l'application depuis l'intérieur de votre application. mais pour cela, vous devez faire la bonne configuration d'url schemens dans votre file plist. Je crois fermement que vous ne regardez pas cette option.

* Il y a un autre moyen ssortingctement déconseillé (sauf JAILBREAK PHONES), l'API est privée * , mais vous pouvez essayer et profiter en mode développement.

  • openApplicationWithBundleID : pour ouvrir l'application à l'aide de l'identificateur de bundle.
  • - (NSArray*)allInstalledApplications; : Cela vous list toutes les applications installées sur votre appareil.

Si vous voulez voir une démo intéressante cela, veuillez exécuter cette application dans votre téléphone et voir le style Apple Watch , Spring Board, avec toutes les applications répertoriées et peuvent être lancés à la pression.

Espérons que cela donne la meilleure idée de l'utilisation de l'api privé.

Installez le com.conradkramer.open ouvert com.conradkramer.open à partir de Cydia et vous pouvez lancer open com.bundle.id partir du shell via SSH ou à partir d'une application.