小程序web-view打开PDF格式文件的安卓苹果兼容性问题

2023-11-19

小程序中打开pdf格式原本可以使用web-view(承载网页的容器。会自动铺满整个小程序页面,个人类型的小程序暂不支持使用

<web-view src="{{link}}"></web-view>

src里放链接就能够正常实现

但是src里面放pdf的链接涉及到了兼容性问题(苹果手机可以正常打开pdf格式文件,安卓打开为空白)

所以如果src里面放pdf格式就会出现问题,这个时候就要使用到微信的另一个API,openDocument(新开页面打开文档)这个时候就可以在安卓和苹果都能打开pdf格式了

        wx.downloadFile({
          // 示例 url,并非真实存在
          url: 'http://example.com/somefile.pdf',
          success: function(res) {
            const filePath = res.tempFilePath
            wx.openDocument({
              filePath: filePath,
              success: function(res) {
                console.log('打开文档成功')
              }
            })
          }
        })

但是因为我所开发的src里面可以会有图片(.png,.jpg,.jpeg,),html(.html),pdf(.pdf)格式

  
getContract: util.throttle(function(e) {
    //util.throttle不用管,可以不用,防止多次点击的,需要可以查一下用
    const contractUrl = e.currentTarget.dataset.contracturl;
    //这个是用来拿到要跳转的url链接的
      const length = contractUrl.length;
      const newstring = contractUrl.substring(length - 4, length);
       //裁剪出来链接文件的后缀,
      const newstring2 = newstring.toLowerCase()
       //toLowerCase()把字符串转换为小写,因为pdf格式的文件可能大写,也可能人为改后缀大小写穿插
      if (newstring2 == '.pdf') {
        wx.downloadFile({
          // 示例 url,并非真实存在
          url: contractUrl,
          success: function(res) {
            const filePath = res.tempFilePath
            wx.openDocument({
              filePath: filePath,
              success: function(res) {
                console.log('打开文档成功')
              }
            })
          }
        })
      } else {
        //上面用openDocument方法打开
        //下面用调到新页面用web-view
        wx.navigateTo({
          url: '../order-contract/order-contract?orderId=' + this.data.orderId
        })
      }
  },2000),

 

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

小程序web-view打开PDF格式文件的安卓苹果兼容性问题 的相关文章

  • C#中Validating和Validated事件

    您可能经常需要检查用户输入到 Windows 窗体中的信息是否有效 例如 如果您有一个电话号码的 TextBox 控件 则可以检查该控件是否只包含适当的字符 数字 括号和连字符等等 通常 可使用正则表达式验证用户输入的数据 了解Valida
  • powerdesigner汉化包

    PowerDesigner是一款专业的建模工具 如果你希望使用中文界面 你可以尝试使用汉化包 汉化包是一种用于翻译软件界面的工具 它可以将英文界面翻译成中文 你可以在网上搜索 PowerDesigner汉化包 并下载适合你当前版本的汉化包
  • 字符串函数的使用及模拟实现:strtok&strstr&strerror:

    字符串函数strstr的使用 char strstr const char str1 const char str2 Returns a pointer to the first occurrence of str2 in str1 or
  • LeetCode338. 比特位计数

    题目连接 https leetcode cn com problems counting bits 解题思路 这道题需要计算从 0 到 num 的每个数的二进制表示中的 1 的数目 最直观的方法是对每个数直接计算二进制表示中的 1 的数目
  • 使用c++超详细解释数据结构中的顺序栈和链栈

    在C 中 栈 Stack 是一种数据结构 它可以用来存储数据 并支持两种基本操作 压入 Push 和弹出 Pop 栈的特点是后进先出 Last In First Out LIFO 也就是最后压入的元素最先弹出 栈可以用数组或链表等数据结构来
  • hdu2030 汉字统计

    hdu2030 汉字统计 Time Limit 2000 1000 MS Java Others Memory Limit 65536 32768 K Java Others Total Submission s 4080 Accepted
  • 树莓派的杂七杂八

    一 交叉编译jpeg 9a 生成的库为libjpeg so 先从官网下载交叉编译器 直接解压到本地 将bin目录加入到系统变量中后 进入目录执行 configure CC arm none linux gnueabi gcc enable

随机推荐

  • 如何在 Flink 1.9 中使用 Hive?

    Flink on Hive 介绍 SQL 是大数据领域中的重要应用场景 为了完善 Flink 的生态 发掘 Flink 在批处理方面的潜力 我们决定增强 FlinkSQL 的功能 从而让用户能够通过 Flink 完成更多的任务 Hive 是
  • 字符串 有效的字母异位词

    LC 有效的字母异位词 给定两个字符串 s 和 t 编写一个函数来判断 t 是否是 s 的字母异位词 注意 若 s 和 t 中每个字符出现的次数都相同 则称 s 和 t 互为字母异位词 func isAnagram s String t S
  • 华为云云耀云服务器L实例评测|使用Docker部署Leanote笔记工具

    华为云云耀云服务器L实例评测 使用Docker部署Leanote笔记工具 一 前言 1 1 云耀云服务器L实例介绍 1 2 Leanote简介 二 本次实践介绍 2 1 本次实践简介 2 2 本次环境规划 三 购买云耀云服务器L实例 3 1
  • Vue2基本知识

    记录Vue2基本知识 从引入vue js文件开始 然后提出问题 1 我们使用vue后怎样将外部数据传递给我们的DOM对象 2 DOM对象中的数据如果改变 如何通知外部数据改变 最后对问题分析得出答案 完整记录vue2中基础指令知识 提供完整
  • 一文教你在 centos7 下安装 Oracle19 C(完整版)

    前言 安装 Oracle 一直是本人工作以来想要做的事情 但是一直都没有安装成功 本人有一个习惯 所有的软件基本上都安装在centos系统下 这样 一方面是 在日常工作中 都是linux环境 另一方面 装在linux虚拟中 万一哪天你想退出
  • 04-7_Qt 5.9 C++开发指南_QTreeWidget和QDockWidget

    文章目录 1 实例功能简述 2 源码 2 1 可视化UI设计 2 2 mainwindow h 2 3 mainwindow cpp 1 实例功能简述 本节介绍 QTreeWidget QDockWidget 的使用 以及用 QLabel
  • osg漫游器

    在三维中常见的就是漫游整个场景 所谓漫游就是 观察者的视线从一个位置移动到另外一个位置或者在希望的方向上移动 在OSG中漫游可以通过改变观察者 相机 的位置和姿态来实现 三维世界中的模型的相对位置和形态不会发生变化 只是观察者的角度和位置发
  • c++学习笔记-指定二维vector大小

    在对二维vector如 vector lt
  • 阅读笔记篇卷首语

    2023年8月31日 周四晚上 我决定开设这个专栏 因为我知道有些文章可以改变人生 值得去细读
  • 【unity3D】创建TextMeshPro(TMP)中文字体(解决输入中文乱码问题)

    未来的游戏开发程序媛 现在的努力学习菜鸡 本专栏是我关于游戏开发的学习笔记 本篇是unity的TMP中文输入显示乱码的解决方式 创建 TextMeshPro 中文字体 遇到的问题描述 解决方式 Font Asset Creator 面板扩展
  • linux基本命令大全

    基本命令 关机 shutdown h halt init 0 poweroff 重启 shutdown r reboot init 6 pwd 查看工作目录 ls 查看指定目录的内容 l 列表显示 a 显示所有 包括隐藏文件 h 人性化的显
  • 【QT学习笔记】QAction和QToolButton的使用

    QAction可以在QT Creator中Action Editor中创建 QAction创建之后的两个使用方式 放到tool bar中 跟QToolButton绑定 ui gt tBtnListIni gt setDefaultActio
  • 虚拟服务器如何传东西,虚拟服务器如何传东西

    虚拟服务器如何传东西 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 计费项包括存储费和流量费 存储费根据存储库的不同进行
  • Reinforcement Learning 强化学习(四)

    Task03 本次学习主要参照Datawhale开源学习及强化学习蘑菇书Easy RL 第4章 策略梯度 Policy Gradient 4 1 策略梯度算法 在强化学习中有 3 个组成部分 演员 actor 环境 environment
  • odoo tree form 视图禁止创建、修改、删除、复制

  • 用标准C语言初始化线性表,c语言实现线性表的初始化,创建,查找,删除

    1 第一步定义线性表结构 typedef struct ElementType data MaxSize int length Lineartable 2 第二步线性表初始化 初始化线性表 Lineartable INITAL Linear
  • Go 每日一库之 gjson

    快速使用 先安装 go get github com tidwall gjson 后使用 package main import fmt github com tidwall gjson func main json name first
  • Hackinglab(鹰眼)——解密关

    目录 1 以管理员身份登录系统 2 邂逅对门的妹纸 3 万恶的Cisco 4 万恶的加密 5 喜欢泡网吧的小明 6 异常数据 7 md5真的能碰撞嘛 8 小明爱上了一个搞硬件的小姑凉 9 有签名限制的读取任意文件 10 美丽的邂逅与密码器的
  • 什么是卷积

    什么是卷积 卷积 convolution 是一种运算 你可以类比于加 减 乘 除 矩阵的点乘与叉乘等等 它有自己的运算规则 卷积的符号是星号 表达式为 连续的为 f g
  • 小程序web-view打开PDF格式文件的安卓苹果兼容性问题

    小程序中打开pdf格式原本可以使用web view 承载网页的容器 会自动铺满整个小程序页面 个人类型的小程序暂不支持使用