iOS如何访问私有文件以进行共享扩展
Posted
技术标签:
【中文标题】iOS如何访问私有文件以进行共享扩展【英文标题】:iOS how to access private file for sharing extension 【发布时间】:2018-06-15 00:55:06 【问题描述】:我一直在尝试访问带有我的共享扩展名的文件,如果该文件来自照片应用程序,我可以访问它,该文件的路径是:
file:///var/mobile/Media/PhotoData/OutgoingTemp/11485686-0D4A-4637-AA50-B14D83E18B01/RenderedPhoto/IMG_4807.JPG
但是当我尝试访问“私人”路径上的文件时,我无法访问它,就像 MS word 文件一样:
file:///private/var/mobile/Containers/Data/Application/196D7E75-87B6-4C69-B97A-74E58DF4AD65/tmp/ShareAttachments/%7BE73A233D-D10E-814D-AEB1-0C8C8AC9BFAA%7D/Document%20 (7).docx
所以我的问题是,如何访问该文件? WhatsApp 或 slack 等应用程序可以访问该文件并将其附加...
如何访问这个文件?他们在使用“应用程序组”吗?他们如何获得应用组的 ID?或者如何访问该文件?
【问题讨论】:
当您尝试访问docx
文件时会发生什么?该文件不存在或引发任何错误?最好能提供docx
文件保存在哪里
@trungduc 说它不存在。 Xx.docx 在 private/var 上的路径上,谢谢
其实如果是private/
的问题,可以使用URLByResolvingSymlinksInPath
从url中删除
或者这个easynativeextensions.com/…
“我无法访问它”是什么意思?有错误吗?您的扩展 Info.plist 中的 NSExtensionActivationRule 设置是什么?如果您没有声明如下内容,这将是一个问题:NSExtensionActivationSupportsFileWithMaxCount.
【参考方案1】:
对于Share Extension
,您需要从NSItemProvider
获取文件,该文件由主机应用程序传递给您的共享扩展。
对于文件,它可能是Data
类型或URL
类型。如果是数据,则需要将其转换为所需的类型。如果它是一个url,你可以加载它。
【讨论】:
【参考方案2】:请点击给定的链接:- https://developer.apple.com/app-extensions/
谢谢。
史莱姆
【讨论】:
嗨,共享扩展已经工作正常,我不能做的是从我的扩展访问 MS word 文件...我可以从“发送副本/与另一个发送”调用我的扩展应用程序”,在 MS Word 应用程序上,但随后,该文件未被访问...以上是关于iOS如何访问私有文件以进行共享扩展的主要内容,如果未能解决你的问题,请参考以下文章
如何使用预设策略加密 Amazon CloudFront 签名以进行私有内容访问