如何使用url方案将文件从一个应用程序发送到另一个应用程序?

时间:2015-09-21 13:35:58

标签: ios objective-c xcode6 url-scheme

摘要(iOS 8,Xcode 6.4)

第一个问题: - 我可以与其他应用分享我的应用文档目录的数据吗?

如果是,我已经看到很多与此相关的问题; Move data/images between two iOS apps using custom URL handlerhttp://code.tutsplus.com/tutorials/ios-sdk-working-with-url-schemes--mobile-6629

但我发现这些示例只发送文字或网址。然后我尝试自己如下:

NSString* path = [NSString stringWithFormat:@"MY_URL_SCHEME://"];
NSURL* url = [NSURL URLWithString:path];
if([[UIApplication sharedApplication]canOpenURL:url]) {
    [[UIApplication sharedApplication]openURL:url];
}

以上代码适用于打开我的其他应用。但是当我在下面尝试时,我无法打开我的其他应用程序。

NSArray* mainPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *sourcePath = [mainPath objectAtIndex:0];
NSString* path = [NSString stringWithFormat:@"MY_URL_SCHEME://%@",sourcePath];
NSURL* url = [NSURL fileURLWithPath:path isDirectory:YES];
if([[UIApplication sharedApplication]canOpenURL:url]) {
    [[UIApplication sharedApplication]openURL:url];
}

所以,请帮帮我,我错过了什么? 修改: -
我忘了提到,iOS7支持在我的App.so中很重要,我认为扩展可能不起作用。

2 个答案:

答案 0 :(得分:0)

将NSUserDefaults与应用程序组一起使用以在应用程序之间共享数据

NSUserDefaults *defaults=[[NSUserDefaults 
alloc]initWithSuiteName:@"app group name"];
[defaults setObject:filedata forKey:@"keyfordata"];
[defaults synchronize];
消费应用的应用委托中的

NSUserDefaults

获取数据

另一种方式是使用共享扩展 - http://easynativeextensions.com/how-to-launch-your-app-from-the-ios-8-share-menu/

答案 1 :(得分:0)

您可以参考MGInstagram文件,因为Instagram移动应用程序的工作方式相同。您可以将图像从应用程序传递到Instagram应用程序。

您可以从此处下载:https://github.com/mglagola/MGInstagram

希望这有帮助。