我写了两个应用程序,我需要它们之间的交互。我的意思是,在第一个应用程序中,有一个 View ,您需要在其中添加一个数字。但是如果你不想把它写下来,另一个应用程序会为你生成它。所以我需要第二个应用程序生成的数字,并用它填充 View 。
我读了很多关于这个主题的文章,我知道我必须使用自定义 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 检索号码?
最佳答案
在 iOS4.2 中可用,要使用一种方案将数据从一个应用程序传递到另一个应用程序,您可以使用 UIApplicationDelegate
协议(protocol)方法
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation
根据文档,annotation
是:
A property-list object supplied by the source application to communicate information to the receiving application.
编辑:事实证明,您可以在 iOS 3.2 下使用注释; application:DidFinishLaunchingWithOptions:
允许在选项字典中使用注释键。
关于objective-c - Objective C 从另一个应用程序中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5663332/