Ios UIDocumentInteractionController (预览类似pdf、doc、ppt等类型文件的类)

UIDocumentInteractionController是OC语言的一个类,但是他并不是一个controller,而是一个继承自NSObject类

一、主要作用:

  • 预览类似pdf、doc、ppt等类型文件的类。
  • 可以将用户接收到的文件分享到用户手机上的其他App中。

二、使用方式:
1.预览文件,并可以分享文件,如图1

2.直接分享文件,如图2

三、使用方法:
1.创建一个UIDocumentInteractionController类的属性:

@property (nonatomic,strong)UIDocumentInteractionController * document;

2.遵循UIDocumentInteractionControllerDelegate

@interface OpenAndShareFileViewController () <UIDocumentInteractionControllerDelegate>

3.初始化document

1.指定要分享的链接
 NSURL *URL = [[NSBundle mainBundle] URLForResource:@"ios-" withExtension:@"pdf"];      
 _document = [UIDocumentInteractionController interactionControllerWithURL:[NSURL fileURLWithPath:cachesDir]];
2.设置分享代理
    _document.delegate    =  (id)self;
3.哪类文件支持第三方打开,这里不证明就代表所有文件!
//    _document.UTI = @"com.microsoft.word.doc";
4.判断手机中有没有应用可以打开该文件并打开分享界面
// 用户预览文件,如图1所示
//BOOL canOpen =   [_document presentPreviewAnimated:YES];
// 用户不预览文件直接分享,如图2所示
    BOOL canOpen = [self.document presentOpenInMenuFromRect:self.view.bounds inView:self.view animated:YES];

    if(!canOpen) {
   NSLog(@"沒有程序可以打开选中的文件");
    }
5.出现如图2所示说明调用成功,点击想要分享的应用即可。

注意注意

但是如果出现点击了没有反应的话那就有可能是iOS11版本的时候,iOS不支持这样做,需要先把文件拷贝到cache中:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS 设备上二进制流的 PDF 文件,可以使用 `wx.downloadFile()` 方法下载文件,然后使用 `wx.openDocument()` 方法打开文件。但是,由于 iOS 设备的一些限制,可能会导致无法正常 PDF 文件。 如果您遇到 iOS 设备无法 PDF 文件的问题,可以尝试以下两种方法: 1. 使用第三方组件 可以使用第三方组件来实现 PDF 文件,例如 `pdf.js`。您可以将 PDF 文件转换为 `base64` 格式,然后使用 `pdf.js` 解析显示。 2. 使用 WebView 使用 `WebView` 控件来加载 PDF 文件,但是需要注意的是,iOS 设备的 `WebView` 控件并不支持直接加载二进制流的 PDF 文件,需要将二进制流转换为 `base64` 格式后再进行加载。具体实现可以参考以下代码: ``` wx.downloadFile({ url: 'your_pdf_url', success: function (res) { var filePath = res.tempFilePath; wx.getFileSystemManager().readFile({ filePath: filePath, encoding: 'base64', success: function (res) { var base64 = res.data; wx.setStorageSync('pdfBase64', base64); // 将 base64 数据存储到本地缓存中 wx.navigateTo({ url: 'webview?url=' + encodeURIComponent('data:application/pdf;base64,' + base64) // 跳转 WebView 页面 }); }, fail: function (res) { console.log(res); } }); }, fail: function (res) { console.log(res); } }); ``` 在 WebView 页面中,可以通过 `window.location.href` 来获取 PDF 文件的 `base64` 数据,并使用 `PDFObject` 或其他第三方库来显示 PDF 文件。具体实现可以参考以下代码: ``` <web-view src="{{url}}" bindmessage="onMessage"></web-view> Page({ onMessage: function (e) { var base64 = wx.getStorageSync('pdfBase64'); // 从本地缓存中获取 base64 数据 var data = JSON.parse(e.detail.data); if (data.type === 'getPdfBase64') { e.target.postMessage({ type: 'pdfBase64', data: base64 }); // 将 base64 数据传递给 WebView 页面 } } }); ``` 以上代码仅供参考,具体实现可以根据实际需求进行调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值