我需要在iOS下共享/打开一些不同的文件,例如,到iCloud的图像或到iBooks的pdf。文本和图像周围有几个示例,但其他方面则没有。
我创造了自己的UIActivityItemProvider
; 简化版在这里:
class MyItemProvider: UIActivityItemProvider {
override func item() -> AnyObject {
self.placeholderItem
}
override func activityViewController(activityViewController: UIActivityViewController, dataTypeIdentifierForActivityType activityType: String?) -> String {
return kUTTypePDF as String
}
func activityViewControllerPlaceholderItem(activityViewController: UIActivityViewController) -> AnyObject {
return self.placeholderItem
}
}
并开始与以下内容共享:
let myPDF = NSData(contentsOfURL: NSBundle.mainBundle().URLForResource("testpdf", withExtension: "pdf")) {
let activityVC = UIActivityViewController(activityItems: [MyItemProvider(placeHolder: myPDF)], applicationActivities: nil)
self.presentViewController(activityVC, animated: true, completion: nil)
我期望像这样的共享对话:
但是我得到的是:
有什么建议?
**
**
我花了很多时间思考如何在从URL加载的UIWebView中共享PDF文件,例如“
http://youPdfFile.pdf ”
经过几天的忙碌,我发现了我认为最合适的方法:
1)PDF必须首先保存在文件系统中。 例如,可以在加载UIWebView之后完成:
class yourViewController: UIViewController{
var documentPathToLoad = "http://youPdfFile.pdf"
...
func webViewDidFinishLoad(_ webView: UIWebView) {
if yourWebView.isLoading {
// still loading
return
}
//Save the pdf document to file system
savePdf()
}
func savePdf(){
let fileManager = FileManager.default
let paths = (NSSearchPathForDirectoriesInDomain((.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("documento.pdf")
let pdfDoc = NSData(contentsOf:URL(string: documentPathToLoad)!)
fileManager.createFile(atPath: paths as String, contents: pdfDoc as Data?, attributes: nil)
}
}
2)读取保存的文件,然后共享。 此方法在Swift 3.0.1中对我有效:
func loadPDFAndShare(){
let fileManager = FileManager.default
let documentoPath = (self.getDirectoryPath() as NSString).appendingPathComponent("documento.pdf")
if fileManager.fileExists(atPath: documentoPath){
let documento = NSData(contentsOfFile: documentoPath)
let activityViewController: UIActivityViewController = UIActivityViewController(activityItems: [documento!], applicationActivities: nil)
activityViewController.popoverPresentationController?.sourceView=self.view
present(activityViewController, animated: true, completion: nil)
}
else {
print("document was not found")
}
}
我的应用程序正在使用commons-configuration2和commons-beanutils1。9,但当我尝试将我的应用程序JAR用于spark流媒体作业时,它引发了以下异常。 java.lang.NoSuchmethod odError:org.apache.commons.beanutils.Properties tyUtilsBean.addBean内向者(Lorg/apache/c
问题内容: 我正在尝试使用UIActivityViewController与主题标签共享图像,并且在尝试共享到Twitter,Facebook和Instagram时遇到一些奇怪的行为。关于这些服务的共享扩展名的文档似乎很少。 方案1:具有带有图像和文本的活动项目数组的Init控制器 如果我这样初始化控制器,则Twitter和Facebook将显示在控制器中(没有Instagram,因为它不支持文本
UIActivityViewController 是 iOS 的通用类型标识符,提供统一的服务接口,用来分享和执行应用的数据操作。此款控制器可以替换分享动作选单(ActionSheet),分享动作选单是出于分享目的的动作选单。还可以自定义活动,可以结合 lntentkit 使用。它提供一个可操作的数据集合,这些集合可分为“action”和 “share”: UIActivityCategoryAc
跟随https://developer.android.com/training/secure-file-sharing/index.html,并能够共享文件在内部目录(/data/data/pack/files/xxx/)的应用程序到客户端应用程序使用file提供程序。 如何将资产文件夹(而不是内部目录)中的文件共享到客户端应用程序。 谢谢
问题内容: 两个共享库liba.so和libb.so。liba.so使用libb.so。所有c文件都使用-fPIC编译。链接使用- shared。当我们在liba.so上调用dlopen时,它无法在libb.so中找到符号…我们得到“未定义符号”错误。我们可以dlopen libb.so没有错误。我们知道liba正在找到libb,因为我们没有得到文件未找到错误。删除libb.so时,出现文件未找到
我正在开发将共享数据库的Android应用程序。为此,我在两个应用程序的清单文件中都使用 。当我在添加该 后尝试运行应用程序时,它会显示控制台中的以下错误。 请帮我解决这个问题。