当前位置: 首页 > news >正文

微信小程序web-view 嵌套h5界面 实现文件预览效果

实现方法:(这里我是在小程序里面单独加了一个页面用来下载预览文件)

安装

使用方法请参考文档
npm 安装

npm install  weixin-js-sdk
import wx from 'weixin-js-sdk'

预览

h5界面代码

	<u-button @click="onclick" type="primary" :loading="butLoad" loadingText="加载中...">预览</u-button>
onclick(){const tempFilePath = 'http://example.com/somefile.pdf'if (window.__wxjs_environment !== 'miniprogram') {uni.openDocument({filePath: filePath,showMenu: true,success: function(res) {console.log('打开文档成功')},fail: function(err) {console.log('失败,', err);}})return}//这里需要注意一下,不要把下面这一行代码单独提出来放一下方法里面,会不生效(具体为啥我也没找到原因,如果有知道麻烦告知一下)wx.miniProgram.navigateTo({url: `/pages/weiVie/index?url=${tempFilePath}`})
},

小程序界面 需要建一个文件
在这里插入图片描述
index.js 代码 (index.wxml 文件是空的,看个人需要)

以下代码在安卓上是没毛病的,苹果手机回存在打开预览就返回当前页去了。
那解决这个问题在返回上一页加一个时间函数就行了。

然后测试时部分苹果手机会出现预览成功了,但是显示空白界面(返回上一页 )
解决这个问题 在可以在wx.downloadFile之后使用setTimeout来调用openDocument,这样可以确保文件下载并缓存后再进行预览‌

 onLoad(e){//获取从h5传过来的地址const {url}=e//   返回上一页 (这步骤加上不会出现空白页面,返回预览看的界面是你预览前的界面)wx.navigateBack({data:1})//   下载wx.downloadFile({url: e.url,success: function(res) {// 预览wx.openDocument({filePath:res.tempFilePath,showMenu: true,//是否打开右上角菜单success: function (res) {console.log('打开文档成功')},fail: function(err) {console.log('失败,',err);}})	},fail: function(err) {//   that.setData({fail:true,loading:false,text:'下载失败',})console.log('失败,', err);}})},

目前想到的方法就是这个,如果有更好的方法,欢迎指导

http://www.lryc.cn/news/502135.html

相关文章:

  • 【汽车】-- 燃油发动机3缸和4缸
  • 轻量级的 HTML 模板引擎
  • Mysql | 尚硅谷 | 第02章_MySQL环境搭建
  • Maven学习(传统Jar包管理、Maven依赖管理(导入坐标)、快速下载指定jar包)
  • CTF: 在本地虚拟机内部署CTF题目docker
  • 视频推拉流EasyDSS无人机直播技术巡查焚烧、烟火情况
  • SpringBoot【十一】mybatis-plus实现多数据源配置,开箱即用!
  • 【嵌入式linux基础】关于linux文件多次的open
  • TPAMI 2023:When Object Detection Meets Knowledge Distillation: A Survey
  • 2024前端面试题(持续更新)
  • apache转nginx访问变成下载解决方法
  • 【iOS】OC高级编程 iOS多线程与内存管理阅读笔记——自动引用计数(三)
  • Oracle数据库使用dblink是时出现 ORA-12170:TNS:连接超时
  • OpenHarmony系统中实现Android虚拟化、模拟器相关的功能,包括桌面显示,详细解决方案
  • 决策曲线分析(DCA)中平均净阈值用于评价模型算法(R自定义函数)
  • 《经验分享 · 软考系统分析师》
  • 记录一下 js encodeURI和encodeURIComponent URL转码问题
  • 【C语言】二维前缀和/求子矩阵之和
  • SRS 服务器入门:实时流媒体传输的理想选择
  • 【ETCD】【源码阅读】configurePeerListeners() 函数解析
  • 1_ssrf总结
  • 深入解析 Redis
  • Visual Studio 2022发布UWP应用证书绑定失败
  • K8S对接ceph的RBD块存储
  • ragflow连不上ollama的解决方案
  • ACL与Prefix List(前缀列表)
  • OpenSSH和OpenSSL升级
  • 数据库继续学习
  • 车载以太网-UDPNM
  • 网页核心页面设计(第8章)