- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试使用 UIDocumentInteractionController
轻松共享存在于我的应用程序中的图像。使用我正在使用的以下代码,一切看起来都很好。 (图片可以转发到whatsapp、viber、instagram。图片可以保存到相机胶卷等)
但是,我需要区分菜单中的某些操作。这是因为例如 Instagram 只接受方形图像,并且在我将图像提供给 instagram 之前需要进行预处理。 (Instagram 工程师应该从裁剪屏幕而不是滤镜屏幕启动应用!@#!$)否则 Instagram 会自动裁剪图像的底部或右侧部分。
那么您认为有没有办法为不同的菜单项操作提供不同的图像?或者我是否必须首先展示一个 Action Controller 并说“在 Instagram 中打开”、“在休息中打开”?如果 whatsapp、twitter、facebook 等其他应用程序具有独有的“打开方式”UTI,我就会那样做。
顺便问一下,您知道为什么 facebook 没有显示在列表中吗? (我查看了编辑/管理列表。它不在那里)
NSString *documentDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"];
//NSString *saveImagePath = [documentDirectory stringByAppendingPathComponent:@"Image.png"];
NSString *saveImagePath = [documentDirectory stringByAppendingPathComponent:@"Image.ig"];
//NSString *saveImagePath = [documentDirectory stringByAppendingPathComponent:@"Image.igo"]; // *.igo is exclusive to instagram
NSData *imageData = UIImagePNGRepresentation(capsObject.capImage);
[imageData writeToFile:saveImagePath atomically:YES];
NSURL *imageURL=[NSURL fileURLWithPath:saveImagePath];
self.docController=[[UIDocumentInteractionController alloc]init];
self.docController.delegate = self;
//self.docController.UTI = @"public.image";
self.docController.UTI = @"com.instagram.photo";
//self.docController.UTI = @"com.instagram.exclusivegram";
[self.docController setURL:imageURL];
//[self.docController presentOpenInMenuFromRect:CGRectZero inView:self.view animated:YES];
[self.docController presentOptionsMenuFromRect:CGRectZero inView:self.view animated:YES];
最佳答案
您需要实现委托(delegate)的方法。
- (void)documentInteractionController:(UIDocumentInteractionController *)controller willBeginSendingToApplication:(NSString *)application{
NSLog(@"Will beginsending to application");
// Detect if the application is instagram
if(![application isEqualToString:@"com.instagram.photo"]){
//Make the custom implementation of your image.
UIImage * iconImage = [self prepareImage];
//save it to documents path
NSString * savePath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/Image.ig"];
[UIImageJPEGRepresentation(iconImage, 1.0) writeToFile:savePath atomically:YES];
// change the URL of your file
controller.URL=[NSURL fileURLWithPath:savePath];
}
}
关于ios - 如何区分为 `UIDocumentInteractionController` "Open in"菜单选择的 Action ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28673149/
是否可以检查设备上有多少个能够处理特定文件类型的应用程序?基本上,我的应用程序中有一个按钮,允许用户在另一个应用程序中打开,但如果没有可能的应用程序可以打开文档,我不想显示它。 最佳答案 好吧,所以想
我不知道这段代码有什么问题,但每次运行应用程序时,显示菜单后,应用程序都会崩溃。 NSString * path = [[NSBundle mainBundle] pathForResource:@"
我在容器 View 中有一个 UIViewController。 View Controller 在 UIDocumentInteractionController 中显示 PDF,如下所示: let
我有一个 PDF 显示在 UIDocumentInteractionController它很棒。 问题是,该应用程序的重点是保护 PDF 不被共享等。因此我想摆脱出现的选项按钮。 堆栈上有 1000
我一直在使用 Apple 示例代码从这里查看文档: https://developer.apple.com/library/ios/samplecode/DocInteraction/Listings
我有从 UIAlertController 中调用的代码: func createSomeFile() { var output = (some NSData to output to fil
如何指定可用于 UIDocumentInteractionController 的“打开方式”功能的特定“白”应用程序列表?我在 UIDocumentInteractionController 文档中
我的应用程序中的一个屏幕显示了本地镜像的预览,我在左上角有一个操作按钮,我用它来显示文档交互选项: - (IBAction)actionButtonTapped:(id)sender { se
我有一个 ics(日历)文件,我使用 presentOptionsMenuFromRect: 使用 UIDocumentInteractionController 打开它。运行时,“打开方式”菜单看起
我的 IOS 应用程序的方向已锁定为纵向模式。但是,我想支持使用 UIDocumentInteractionController 打开的文件的横向和纵向。这是我打开文件 url 的代码。 let u
我使用 UIDocumentInteractionController 在我的应用程序中预览文档。但是,有时文档显示良好,有时交互 Controller 显示消息“读取文档时出错”。我知道这不是文档的
我对 UIDocumentInteractionController 非常绝望。我唯一想做的就是与注册 PDF 的所有其他应用程序共享我的应用程序中的 pdf 文件。 这是我的代码: NSString
这里有一个奇怪的 iOS 问题... 我有一个可以在我的 iPad 上打开 PDF 的应用程序。 (我只需要在我所处的环境中处理 iPad) 奇怪的是,有时当我尝试加载文件时(DocumentInte
我使用- (BOOL)presentPreviewAnimated:(BOOL)animated; 来加载文档,然后我想从文档中截取屏幕截图。所以我尝试 UIGraphicsBeginImageCon
在我的应用程序中,我下载各种格式的文件。我试图让 UIDocumentInteractionController 获得可以打开这种格式的应用程序。问题是 UIDocumentInteractionCo
我想在应用程序中分享保存的 PDF。实际上,它不适用于 PRINT,也不适用于 MAIL,它正在通过 Whatsapp 和其他应用程序进行共享。 { let fileManager = Fil
在我的 iOS 应用程序中,我使用 DocumentInteractionController 来预览 .csv 文档。 self.documentController = [UIDocume
在我的应用程序中,我想下载各种类型的文件并导出,以便用户可以使用打开此类文件的应用程序打开文件。我正在尝试使用 UIDocumentInteractionController 但在下载后将其保存到我的
我正在使用 UIDocumentInteractionController 与其他应用程序共享在我的应用程序中拍摄的图像。当您使用它与 Instagram 分享时,您可以使用包含键 @"Instagr
当用户从 tableView 中选择一个文件时,我试图从导航 Controller 中呈现一个 UIDocumentInteractionController。 interactionControll
我是一名优秀的程序员,十分优秀!