测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | MIT |
发布上次发布 | 2014年12月 |
由 Antonio Cabezuelo Vivo 维护。
应用程序间通信(从现在起,称为IAC)是一个框架,它允许您的iOS应用程序与设备上安装的、支持x-callback-url协议的其他iOS应用程序轻松通信。使用IAC,您还可以非常轻松和直观地将
IAC目前支持
您可以在应用程序的任何位置使用以下代码调用设备上的任何外部应用程序
#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"}];
#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]);
}
];
为了使回调工作,您的应用程序必须支持
按照以下简单步骤将
在应用程序的Info.plist
中定义应用程序将响应的URL方案。请参阅此文章中的“实现自定义URL方案”部分。
使用[IACManager sharedManager].calbackURLScheme = @"myappscheme";
将此方案分配给IACManager实例。我建议在-application:didFinishLaunchingWithOptions:
委托方法中执行此操作。
从应用程序的委托中的URL处理方法调用-handleOpenURL:
。例如
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [[IACManager sharedManager] handleOpenURL:url];
}
完成这三个步骤后,您的应用程序将可供其他应用程序调用,并从它们那里接收回调。
如果您想通过x-callback-url协议将外部API
添加到您的应用中,可以使用以下两种选项之一或同时使用:
将您的操作处理程序直接添加到IACManager
实例中,通过针对每个操作调用-handleAction:withBlock:
。
在任何一个类中实现IACDelegate
协议,并将代理分配给IACManager
实例,最好在应用代理的-application:didFinishLaunchingWithOptions:
方法中。
对于同一操作,操作处理程序优先于代理。
通过示例代码探索所有这些功能。
您也可以通过将InterAppCommunication
目录的内容复制到项目中来进行手动安装。
在AppClients
目录中,您可以找到一些应用的客户端,将您想使用的客户端文件复制到项目中。
IAC*.m
文件的编译器标志设置为-fobjc-arc
来与不支持ARC的项目一起使用。您可以在“目标”->“构建阶段”->“编译源”下设置此标志。如果您有一个已经具有x-callback-url API的应用,您可以通过创建一个IACClient
子类并与之共享这些类,帮助其他应用与您的应用通信。
这样,您可以将公开的API实现为如果应用是调用应用内部的一个组件。您可以实现具有所需参数的方法,甚至在调用之前执行一些验证。
您可以在AppClients
目录中找到所有已实现的客户端子类。如果您已经为您自己的应用实现了一个,请不要犹豫与我联系,我将把它添加到仓库中。
如果您使用过并喜欢Inter-app Communication框架,请通知我!
版权所有(c) 2013 Antonio Cabezuelo Vivo (http://tapsandswipes.com)
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供者提供软件的人这样做,前提是以下条件:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“现状”提供,不提供任何明示或默示的保证,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者不对任何主张、损害或其他责任负责,无论是基于合同、侵权或其他行为,还是由于软件、软件的使用或任何与之相关的操作引起的。