2012-02-15 169 views

回答

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

然后,如果你希望你的应用程序进行网址方案不兼容,你可以通过阅读本有一个好的开始: http://www.idev101.com/code/Objective-C/custom_url_schemes.html 这篇文章非常好,很详细。

How do you set your Cocoa application as the default web browser?

它解释了如何使您的应用程序处理的自定义URLScheme,这原来是你的情况。

希望它可以帮助。

k

其他情况我不知道它是否可能。

+0

如何制作一个程序,以便它可以被外部应用程序调用,例如[[UIApplication sharedApplication] openURL:skypeURL];你写的? – rakeshNS 2012-02-15 12:23:13

+0

我刚刚更新了解释如何做到这一点的链接。 ;-) – holographix 2012-02-15 12:24:38

0

不,这是不可能的,除非这些应用程序支持URL Scheme,那么你可以使用URL启动它。

+0

什么是URL方案?你能解释一下吗? – rakeshNS 2012-02-15 12:19:02

0

不可能,因为所有的iPhone应用程序都将运行在不同的独立进程中,并且拥有自己的运行时环境。只有有限的IPC(进程间通信)可用,对于系统库和资源也是如此。

0

不可以。无法在应用内打开另一个应用。但是,您可以通过使用CFBundleDocumentTypesUIDocumentInteractionController

  1. URL Scheema

  2. Open_In功能打开从你的应用程序反之亦然一个不同的应用程序。

相关问题