InterAppCommunication 1.0

InterAppCommunication 1.0

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布上次发布2014年12月

Antonio Cabezuelo Vivo 维护。



  • 作者:
  • Antonio Cabezuelo Vivo

应用程序间通信

简化x-callback-url

应用程序间通信(从现在起,称为IAC)是一个框架,它允许您的iOS应用程序与设备上安装的、支持x-callback-url协议的其他iOS应用程序轻松通信。使用IAC,您还可以非常轻松和直观地将API添加到您的应用程序中。

IAC目前支持 1.0草案规范

用法

调用外部应用程序

您可以在应用程序的任何位置使用以下代码调用设备上的任何外部应用程序

#import "IACClient.h"

IACClient *client = [IACClient clientWithURLScheme:@"appscheme"];
[client performAction@"action" parameters:@{@"param1": value1, @"param2": value2}];

如果可用,您还可以使用您要调用的应用程序的客户子类。在框架中,有Instapaper和Google Chrome的客户,未来还将添加更多。

例如,要将URL添加到您的应用程序中的Instapaper,您可以执行以下操作

  • 无特定客户类
#import "IACClient.h"

IACClient *client = [IACClient clientWithURLScheme:@"x-callback-instapaper"];
[client performAction@"add" parameters:@{@"url": @"http://tapsandswipes.com"}];
  • 使用针对Instapaper的特定客户类
#import "InstapaperIACClient.h"

[[InstapaperIACClient client] add:@"http://tapsandswipes.com"];

接收外部应用程序的回调

如果您想从外部应用程序处接收回叫,您可以指定成功和失败处理程序块,例如

IACClient *client = [IACClient clientWithURLScheme:@"appscheme"];
[client performAction:@"action"
            parameters:@{@"param1": value1, @"param2": value2}
            onSuccess:^(NSDictionary *resultParams){
                NSLog(@"The app response was: %@", resultParams)
            }
            onFailure:^(NSError *error){
                NSLog(@"ERROR: %@", [error localizedDescription]);
            }
];

为了使回调工作,您的应用程序必须支持协议。最简单的方法是让IAC来管理。

将x-callback-url支持添加到您的应用程序中

按照以下简单步骤将支持添加到您的应用程序中

  1. 在应用程序的Info.plist中定义应用程序将响应的URL方案。请参阅此文章中的“实现自定义URL方案”部分。

  2. 使用[IACManager sharedManager].calbackURLScheme = @"myappscheme";将此方案分配给IACManager实例。我建议在-application:didFinishLaunchingWithOptions:委托方法中执行此操作。

  3. 从应用程序的委托中的URL处理方法调用-handleOpenURL:。例如

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url 
    sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    return [[IACManager sharedManager] handleOpenURL:url];
}

完成这三个步骤后,您的应用程序将可供其他应用程序调用,并从它们那里接收回调。

将x-callback-url API添加到您的应用中

如果您想通过x-callback-url协议将外部API添加到您的应用中,可以使用以下两种选项之一或同时使用:

  • 将您的操作处理程序直接添加到IACManager实例中,通过针对每个操作调用-handleAction:withBlock:

  • 在任何一个类中实现IACDelegate协议,并将代理分配给IACManager实例,最好在应用代理的-application:didFinishLaunchingWithOptions:方法中。

对于同一操作,操作处理程序优先于代理。

通过示例代码探索所有这些功能。

安装

手动安装

您也可以通过将InterAppCommunication目录的内容复制到项目中来进行手动安装。

AppClients目录中,您可以找到一些应用的客户端,将您想使用的客户端文件复制到项目中。

要求

  • IAC使用ARC,但可以通过将所有IAC*.m文件的编译器标志设置为-fobjc-arc来与不支持ARC的项目一起使用。您可以在“目标”->“构建阶段”->“编译源”下设置此标志。
  • 需要iOS 5.0+和Xcode 4.3+。

为您的应用创建一个IAC客户端类

如果您有一个已经具有x-callback-url API的应用,您可以通过创建一个IACClient子类并与之共享这些类,帮助其他应用与您的应用通信。

这样,您可以将公开的API实现为如果应用是调用应用内部的一个组件。您可以实现具有所需参数的方法,甚至在调用之前执行一些验证。

您可以在AppClients目录中找到所有已实现的客户端子类。如果您已经为您自己的应用实现了一个,请不要犹豫与我联系,我将把它添加到仓库中。

联系方式

如果您使用过并喜欢Inter-app Communication框架,请通知我!

许可

MIT许可

版权所有(c) 2013 Antonio Cabezuelo Vivo (http://tapsandswipes.com)

特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是以下条件:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

软件按“现状”提供,不提供任何明示或默示的保证,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不对任何主张、损害或其他责任负责,无论是基于合同、侵权或其他行为,还是由于软件、软件的使用或任何与之相关的操作引起的。