使用react-native-doc-viewer实现文档预览

目录
  • react-native-doc-viewer文档预览
    • 具体步骤如下
  • react-native初体验的总结
    • 一、前提知识点
    • 二、开发前后相关的一些配置
    • 三、开发项目中用到的知识
    • 四、ui库
    • 五、项目搭建
    • 六、根据需要安装对应依赖
    • 七、开发和调试

react-native-doc-viewer文档预览

react-native项目要求实现word,excel,pdf,mp4,png等格式附件图片的在线预览,最终选用react-native-doc-viewer实现,

具体步骤如下

1、安装react-native-doc-viewer

(1) npm install react-native-doc-viewer --save

(2) react-native link react-native-doc-viewer

2、修改源代码

(1) 因为react-native-doc-viewer已经很久没有更新了,所以SdkVersion是23,比较低,将它修改成如下图所示:

(2)找到下图中左侧的文件,将右侧红圈圈里面的代码注释掉

至此,所以安装和配置完成,下面是写代码步骤

3、代码实现

import OpenFile from 'react-native-doc-viewer';
//预览附件
viewAttachment(attachment) {
   let fileTypeArr = ['xls', 'ppt', 'doc', 'xlsx', 'pptx', 'docx', 'png', 'jpg', 'pdf', 'mp4', 'txt'];
   if (fileTypeArr.indexOf(attachment.fileSuffix) >= 0) {
      if (Platform.OS === 'ios') {
         OpenFile.openDoc([{
            url: attachment.filePath,
            fileNameOptional: attachment.fileName
         }], (error, url) => {
            if (error) {
               console.log(error);
            } else {
               console.log(url)
            }
         })
      } else {
         OpenFile.openDoc([{
            url: attachment.filePath,
            fileName: attachment.fileName,
            cache: false,
            fileType: attachment.fileSuffix
         }], (error, url) => {
            if (error) {
               console.error(error);
            } else {
               console.log(url)
            }
         });
      }
   } else {
      Toast.show('app端暂不支持此种格式附件预览,请去pc端预览');
   }
}

应用会打开手机上对应的第三方软件,做预览。

react-native初体验的总结

一、前提知识点

  • RN中文网链接 https://www.react-native.cn/docs/getting-started
  • html、JavaScript、css基础
  • es6+等新的概念
  • react、redux相关知识
  • 如果需要用ts语法,还需要了解typescript相关知识点
  • 数据请求,官方中有推荐的,我这里选择axios

二、开发前后相关的一些配置

react-native相关知识点可以参考官方文档进行学习,总结了几点基本的

  • RN开发需要的环境(mac,windows),参考官方文档即可
  • RN开发利用相关脚手架初始化项目,参考官方文档即可
  • RN打包需要用的签名创建,及打包流程,参考官方文档即可
  • RN开发过程中用到的模拟器(我这里用的mumu模拟器)
  • RN开发过程中用到的debugger工具(推荐使用react-native-debugger)

三、开发项目中用到的知识

学习的时候,我这里主要从以下几方面进行学习的,列出的大部分是npm包名

  • 设置app启动图片 react-native-splash-screen
  • 页面跳转 react-navigation 起到路由的作用
  • 数据存储 @react-native-async-storage/async-storage
  • 嵌入web react-native-webview
  • 使用相机 react-native-camera
  • 扫描二维码 react-native-qrcode-scanner
  • 文件上传 react-native-document-picker react-native-doc-viewer
  • 图片上传 react-native-image-picker
  • 轮播图 react-native-swiper
  • 背景渐变 react-native-linear-gradient
  • 顶部状态栏 react-native 提供的组件 StatusBar
  • toast提示 react-native-root-toast,会用到 react-native-root-siblings
  • 手势 react-native-gesture-handler
  • 高德地图 react-native-amap3d

四、ui库

五、项目搭建

官网中提供的初始化模板

npx react-native init projectName --template react-native-template-typescript

六、根据需要安装对应依赖

建议加上npm进行依赖搜索,或者去npm官网搜索,eg: react-native-camera npm

因为我这里项目初始化的rn版本为0.63.4,所以大部分依赖都是直接link之后就可以正常使用的。

七、开发和调试

静态页面的开发其实跟web端一样,组件的合理利用就行。会涉及一些交互

1.物理返回键

const handle = ()=>{
    // 响应事件处理
}
// 订阅
BackHandler.addEventListener('hardwareBackPress', handle);
// 移除
BackHandler.removeEventListener('hardwareBackPress', handle);

2.跨页面通信

const handle = (params)=>{
    // 响应事件处理
}
// 订阅
DeviceEventEmitter.addListener('eventKey', handle);
// 移除
DeviceEventEmitter.removeListener('eventKey', handle);
// 触发
DeviceEventEmitter.emit('eventKey', params);

3. formData文件上传

图片或者文件上传的时候,需要关闭debugger模式,不然会出现异常。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • React Native 的动态列表方案探索详解

    目录 背景 技术方案介绍 内存 异常处理 未来规划 背景 时至2022,精细化运营已经成为了各大App厂商的强需求,阿里的 DinamicX.Tangram 大家应该都很熟悉了,很多App厂商也自研了一些类似框架,基于DSL的动态化方案虽然有性能上的一些优势,但是毕竟不是图灵完备,一些需要逻辑动态下发的需求实现成本偏高,或由于DSL本身限制无法实现,针对这个问题我们使用RN进行了一下探索尝试, 利用我们已经相对完善的RN基建,结合客户端列表能力低成本的实现了一套的动态化能力,同时兼顾一定的性能体

  • react-native 父函数组件调用类子组件的方法(实例详解)

    react-native 父函数组件调用类子组件的方法,代码如下所示: import React, {Component} from 'react'; import {Text, View, TouchableOpacity} from 'react-native'; // 父 let child onRefbbb = (ref) => { child = ref } clickccc = () => { child.myName() } const Parent =()=> { ret

  • react-native 实现渐变色背景过程

    目录 react-native 渐变色背景 react-native学习记录 滚动条 轮播图示例 渐变色 ScrollableTabView默认页面 ScrollableTabView背景颜色 ScrollableTabView选中颜色 ScrollableTabView未选中颜色 react-native 渐变色背景 使用react-native-linear-gradient插件 1.安装 npm react-native-linear-gradient 2.链接 react-native

  • 详解React Native项目中启用Hermes引擎

    目录 引言 一.启用 Hermes 引擎 1.1 Android 1.2 iOS 二.Hermes 引擎使用 2.1 检查 Hermes 引擎是否启用 2.2 绑定Hermes 2.3 使用DevTools在Hermes上调试JS 引言 目前,最新版本的React Native(0.70.0及以上版本)已经默认开启了Hermes引擎.而Hermes则是专门针对React Native应用而优化的全新JavaScript引擎,启用Hermes引擎可以优化启动时间,减少内存占用以及空间占用. 一.启

  • 使用react-native-image-viewer实现大图预览

    目录 react-native-image-viewer大图预览 先看一个实现的效果 实例 下面是一个简单的实例代码 Props react-native-image-viewer大图预览 在移动开发中,特别是涉及到图片的应用开发中,经常会遇到图片预览等功能,并且预览支持图片的放大和缩小,在Android原生开发中可以使用PhotoViewPager库实现,如果在React Native中,可以选择使用react-native-image-viewer. 先看一个实现的效果 实例 使用前需要先安

  • 使用react-native-doc-viewer实现文档预览

    目录 react-native-doc-viewer文档预览 具体步骤如下 react-native初体验的总结 一.前提知识点 二.开发前后相关的一些配置 三.开发项目中用到的知识 四.ui库 五.项目搭建 六.根据需要安装对应依赖 七.开发和调试 react-native-doc-viewer文档预览 react-native项目要求实现word,excel,pdf,mp4,png等格式附件图片的在线预览,最终选用react-native-doc-viewer实现, 具体步骤如下 1.安装r

  • js打开word文档预览操作示例【不是下载】

    本文实例讲述了js打开word文档预览操作.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script> function openmydoc(path) { var doc = new ActiveXObject("

  • Ubuntu下使用python读取doc和docx文档的内容方法

    读取docx文档 使用的包是python-docx 1. 安装python-docx包 sudo pip install python-docx 2. 使用python-docx包读取数据 #encoding:utf8 import docx doc = docx.Document('test.docx') docText = '\n'.join([paragraph.text for paragraph in doc.paragraphs]) #print(docText) python-do

  • python实现对doc,txt,xls文档的读写操作

    1.python实现对doc文档的读取 #读取docx中的文本代码示例import docx#获取文档对象file=docx.Document("path")print("段落数:"+str(len(file.paragraphs)))#段落数为13,每个回车隔离一段​#输出每一段的内容for para in file.paragraphs:    print(para.text)​#输出段落编号及段落内容for i in range(len(file.paragr

  • viewer.js实现图片预览功能

    viewer.js是实现图片预览的插件库,要在项目中使用它里面的功能,首先要引入两个文件: 1.css文件:viewer.css 2.js文件:viewer.js 可以在这里下载 下载后,在html中引入 <link rel="stylesheet" type="text/css" href="./viewer.css" rel="external nofollow" /> <script src="

  • simplehtmldom Doc api帮助文档

    API Reference Helper functions object str_get_html ( string $content ) Creates a DOM object from a string. object file_get_html ( string $filename ) Creates a DOM object from a file or a URL. DOM methods & properties stringplaintext Returns the conte

  • 用python生成mysql数据库结构文档

    最近因为项目原因需要编写数据库设计文档,但是由于数据表太多,手动编写耗费的时间太久,所以搞了一个简单的脚本快速生成数据库结构,保存到word文档中. 安装pymysql和document pip install pymysql pip install document 脚本 # -*- coding: utf-8 -*- import pymysql from docx import Document from docx.shared import Pt from docx.oxml.ns im

  • asp.net下用Aspose.Words for .NET动态生成word文档中的数据表格的方法

    1.概述 最近项目中有一个这样的需求:导出word 文档,要求这个文档的格式不是固定的,用户可以随便的调整,导出内容中的数据表格列是动态的,例如要求导出姓名和性别,你就要导出这两列的数据,而且这个文档不是导出来之后再调整而是导出来后已经是调整过了的.看到这里,您也许马上想到用模板导出!而且.NET中自带有这个组件:Microsoft.Office.Interop.Word,暂且可以满足需求吧.但这个组件也是有局限性的,例如客户端必须装 office组件,而且编码复杂度高.最麻烦的需求是后面那个-

  • php文档工具PHP Documentor安装与使用方法

    本文讲述了php文档工具PHP Documentor安装与使用方法.分享给大家供大家参考,具体如下: PHP Documentor是PEAR下面的一个模块,用来生成文档.PHP Documentor扫描指定目录下面的php源代码,扫描其中的关键字,截取需要分析的注释,然后分析注释中的专用的tag,生成html文件,接着根据已经分析完的类和模块的信息,建立相应的索引,生成html文件.在review代码的时候,有点用处. 一.安装PHP Documentor 首先要先确认一下有没有安装pear库,

  • Python实现pdf文档转txt的方法示例

    本文实例讲述了Python实现pdf文档转txt的方法.分享给大家供大家参考,具体如下: 首先,这是一个比较粗糙的版本,因为已经够用了,而且对pdf的格式不熟悉,所以暂时没有进一步优化. 还有,这是转成txt的,所以如果是有图片的pdf是无法保存图片的. 至于本来就是图片的文本,这里是无法分析出来的.那些图片的pdf,估计要用图形匹配的方式来处理,类似于超速拍摄的车牌识别. 不过这样的程度,已经不是文本处理了.扯远了... 转出来的文字,好像按照pdf里面的所展示的来换行了,看不到有什么规则还原

随机推荐