我可以在我的应用程序中调用其他已安装的应用程序吗?假设我已经安装了AngryBirds,我必须通过点击应用程序中的按钮来调用该应用程序。有可能吗?
答案 0 :(得分:1)
如果相关应用程序具有已定义的协议,您可以执行此操作,例如,如果您想通过Skype调用某个号码,则可以执行类似
的操作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兼容,那么您可以通过以下方式获得良好的开端: http://www.idev101.com/code/Objective-C/custom_url_schemes.html 而这篇文章真的很好而且很详细。
How do you set your Cocoa application as the default web browser?
它解释了如何让您的应用处理自定义URLScheme,结果证明是您的情况。
希望它有所帮助。
ķ
对于其他情况,我不知道是否可能。
答案 1 :(得分:0)
不,这是不可能的,除非相关的应用程序支持URL Scheme,然后您可以使用URL启动它。
答案 2 :(得分:0)
不可能,因为所有iphone应用程序都将使用自己的运行时环境在不同的单个进程中运行。系统库和资源也只有有限的IPC(进程间通信)。
答案 3 :(得分:0)
没有。无法在应用内打开另一个应用。但是,您可以使用
从应用中打开其他应用,反之亦然URL Scheema
使用CFBundleDocumentTypes
和UIDocumentInteractionController
的Open_In功能。