objective-c - Objective C 从另一个应用程序中检索数据

标签 objective-c cocoa-touch ios interaction openurl

我写了两个应用程序,我需要它们之间的交互。我的意思是,在第一个应用程序中,有一个 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/

相关文章:

objective-c - 使用UITableView的音频播放器

ios - "Quit and Open safari extension preferences"按钮不起作用。 (将 Chrome 扩展程序转换为 Safari Web 扩展程序时)

iphone - RestKit mapKeyPath 到数组索引

iphone - 属性与实例变量

cocoa-touch - 横向导航图像太短

ios - 将 imageView 的新框架设置为 Storyboard 对象的框架

ios - 在没有与设备配对的 Apple-ID 的情况下签署应用程序以进行两步验证

iphone如何指定Class数据类型必须采用某种协议(protocol)

ios - CLBeacons 处于应用挂起状态

ios - 组 TableView 标题显示在 admob 横幅上