Могу ли я вызвать другие установленные приложения в своем приложении? Предположим, я установил AngryBirds, я должен вызвать это приложение, нажав кнопку из моего приложения. Является ли это возможным?Открытие внешнего приложения внутри моего приложения
ответ
Вы можете это сделать, если приложение в вопросе есть определенный протокол, в примере, если вы хотите, чтобы вызвать номер через скайп вы можете выполнить действие, как
NSString *contactName = @"user123";
NSURL *skypeURL = [NSURL URLWithString:[NSString stringWithFormat:@"skype://%@?call", contactName]];
if ([[UIApplication sharedApplication] canOpenURL:skypeURL]) {
[[UIApplication sharedApplication] openURL:skypeURL];
} else {
// Display to the user how to install skype.
}
то же самое может случиться и с другими программами, которые имеют определение протокола, которое можно было бы понять.
И только 4 записи, вот список ноу URL схем http://wiki.akosma.com/IPhone_URL_Schemes
Затем, если вы хотите, чтобы ваше приложение, чтобы быть URL-Scheme совместимым, вы можете иметь хороший старт, прочитав это: http://www.idev101.com/code/Objective-C/custom_url_schemes.html и этот пост действительно хорош и детализирован.
How do you set your Cocoa application as the default web browser?
объясняет, как сделать ваше приложение обрабатывать пользовательские URLScheme, который, оказывается, ваш случай.
надеюсь, что это может быть полезно.
к
для других сценариев случае я не получил ни малейшего представления, если это возможно.
Нет, это невозможно сделать, если приложения, о которых идет речь, не поддерживают схему URL-адреса, то вы можете запустить ее с помощью URL-адреса.
Что такое схема URL? Может у объяснить, пожалуйста, – rakeshNS
Невозможно, потому что все приложения iphone будут работать в другом отдельном процессе со своей собственной средой выполнения. Доступно только ограниченное IPC (Inter process communication), что тоже для системных библиотек и ресурсов.
Нет. В приложении нет возможности открыть другое приложение. Однако вы можете открыть другое приложение из своего приложения наоборот с помощью
URL Scheema
функциональность Open_In с помощью
CFBundleDocumentTypes
иUIDocumentInteractionController
.
Как я могу сделать программу такой, что она будет invokable внешним приложением, используя вызов, такой как [[UIApplication sharedApplication] openURL: skypeURL]; как вы писали? – rakeshNS
Я только что обновил ответ ссылкой, в которой объясняется, как это сделать. ;-) – holographix