【发布时间】:2011-04-14 12:36:56
【问题描述】:
我写了两个应用程序,我需要它们之间的交互。我的意思是,在第一个应用程序中,有一个视图,您需要在其中添加一个数字。但是,如果您不想写下来,其他应用程序会为您生成它。所以我需要第二个应用程序生成的数字,并用它填充视图。
我阅读了很多关于这个主题的文章,我知道我必须使用自定义 URL 方案。一篇关于此的好文章,例如:link。所以如果我理解了,我需要定义这样的方案:
在第一个应用程序中:
- 网址标识符: com.mycompany.myfirstapp
- URL Schemes 第一项:myFirstApp
在第二个应用中:
- 网址标识符: com.mycompany.mysecondapp
- URL Schemes 第一项:mySecondApp
然后在第一个应用程序中,例如在按钮的 IBAction 中:
[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"mySecondApp://pleaseGenerateNumber"]];
在第二个应用程序中,我必须实现
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
方法和方法
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url
方法。然后解析 URL,并进行数字生成。但问题就在这里。我怎样才能“告诉”第一个应用程序第一个应用程序生成的数字?我必须再次使用 openURL,并通过 URL 检索号码?
【问题讨论】:
-
@Andreas:[cocoa] 标签适用于 Mac OS X。对于 iOS,请改用 [cocoa-touch]。
-
@Bavarious:看不到问题中提到的 ios(仅)。它适用于两者,所以添加两个标签?另外:删除 Objective-C 标签? API 不是“严格”的语言绑定?!
-
@Andreas 有时答案确实适用于两个平台,我同意。但在这种情况下,
UIApplication绝对是 iOS,Mac OS X 中的进程间/应用程序间通信允许出现一系列不适用于 iOS 的不同答案。
标签: objective-c cocoa-touch ios interaction openurl