在 Vince Parsons(和其他人)的帮助下,我解决了这个问题。
使用 PhoneGap 插件,您可以创建/公开一个 JavaScript 调用,然后在 Objective-c 中进行处理。
这是您需要的两行(是的,只有两行!),以及随后的解释:
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:myDocumentPath]];
[self.docInteractionController presentOpenInMenuFromRect:CGRectMake(0,100,1,1) inView:UIApplication.sharedApplication.keyWindow animated:YES];
解释
您的输入将是文件位置。在我的情况下,它在应用程序沙箱内,所以它看起来像:
/var/mobile/Applications/B16-HU83-GU1D-1D3NT1F13R/Documents/DocumentToExport.pdf
如果您想使用外部 URL,您可以(通过调整),但出于我的目的,它是内部的。
因此,将我的文件位置作为输入(我们称之为输入变量myDocumentPath
),您只需要声明一个文档控制器:
self.docInteractionController = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:myDocumentPath]];
这将创建一个UIDocumentInteractionController
usinginteractionControllerWithURL
方法,该方法需要一个NSURL
变量。我们使用该方法创建该NSURL
变量fileURLWithPath
,并将其传递给我们的myDocumentPath
.
下一行调用presentOpenInMenuFromRect
了一个矩形和一个视口:
[self.docInteractionController presentOpenInMenuFromRect:CGRectMake(0,0,1,1) inView:UIApplication.sharedApplication.keyWindow animated:YES];
矩形在位置 0,0 处创建,宽度和高度为 0,0 ( GCRectMake(0,0,1,1)
),视口取自 PhoneGap 应用程序:UIApplication.sharedApplication.keyWindow
只需要两行代码就可以解决这个问题,我感到既高兴又惊讶。诚然,没有办法只使用 JavaScript,但它仍然非常优雅,而且效果很好。