热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

微信小程序实现打开并下载服务器上面的pdf文件到手机

这篇文章主要介绍了微信小程序实现打开并下载服务器上面的pdf文件到手机,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

谈一谈ios的bug:

        关于ios系统的bug这块也是快把柚子给逼疯了啊,ios系统是没有文件管理的,柚子用了很多办法,最后终于确定不管用什么办法ios都是实现不了下载的,只能实现在线查看。所以没办法,如果不考虑兼容ios的话,是很简单就能解决的,但是我想没有哪一个小程序会不让你兼容ios的吧!

先看一下不兼容ios系统的下载柚子是怎么实现的吧:

        首先我们需要在页面里写入一个按钮,用来触发pdf的打开和下载,写上点击事件

//查看并下载
See_download() {
   wx.downloadFile({//下载
    url: url,//服务器上的pdf地址
    filePath: wx.env.USER_DATA_PATH + '/test.pdf',//自定义文件地址
    success: function (res) {
     var filePath = res.filePath
     wx.openDocument({//打开
      filePath: filePath,
      success: function (res) {}
     })
    }
   })
}

     OK,执行完成后就已经下载了,并且也已经打开了,但是柚子刚刚就说了,ios是不支持下载的,也就是说ios可以正常打开,但是不能下载,就是这样,另外安卓的是下载了,但是不太好找,他的存放目录是:文件管理/Tencent/MicroMsg/wxanewfiles/一个名字很长的文件夹/test.pdf

好了,这就是不兼容ios下载的方法,但是遇到问题了总要想办法解决的啊,最后实在没办法了,只能稍微改一下需求,改成了转发,反正下载下来也是要发给别人看的嘛,还不如直接点击按钮实现转发给微信好友了呢

但是微信小程序的转发是只能转发页面的,所以柚子就新建了一个专门存放pdf文件的页面,我们默人打开这个页面就自动打开pdf也是一样的效果:下面是实现思路,仅供参考:

   1、首先需要一个转发按钮,要获取微信的通讯录的话,按钮中需要加入open-type="share"这个属性的

  2、有了转发按钮我们直接在页面中写方法即可:

onShareAppMessage: function (res) {
  return {
   title: '转发的标题',
   path: '/pages/pdf/pdf?url=' + this.data.url,//这个url是要带到转发的那个页面的
   imageUrl: '/static/images/pdf.png', //图片可以是本地图片
  }
},

//注:此方法是不用点击事件触发的,只要有open-type="share"就会触发,还有就是此方法是不能异步获取参数的,所有要带到转发页面的参数都要在转发之前获取到

   3、下面就是转发的页面中的内容了,要在打开这个页面的时候就进入pdf文件,为了页面的美观,柚子又做了一些优化,不需要的可以忽略,下面是代码:


 
  
  关闭小程序
 

  
/* pages/pdf/pdf.wxss */
.btn_box{
 width: 100%;
 box-sizing: border-box;
 padding: 30rpx 5%;
 position: absolute;
 top: 50%;
 left: 50%;
 transform: translate(-50%,-50%);
 margin-top: -50rpx;
}
button{
 margin-top: 50rpx;
 height: 100rpx;
 line-height: 100rpx;
}
.back{
 width: 100%;
 margin-top: 50rpx;
 height: 100rpx;
 line-height: 100rpx;
 color: #FFF;
 background-color: #E64340;
 box-sizing: border-box;
 font-size: 18px;
 text-align: center;
 border-radius: 10rpx;
}
// pages/pdf/pdf.js
Page({
 /**
  * 页面的初始数据
  */
 data: {
  check:0,
  url:'',
  show_btn:false,
 },
 /**
  * 生命周期函数--监听页面加载
  */
 onLoad: function (options) {
  this.setData({
   url: options.url
  })
 },
 // 返回首页
 home(){
  wx.reLaunch({
   url: '/pages/index/index'
  })
 },
 /**
  * 生命周期函数--监听页面显示
  */
 onShow: function () {
  var that = this
  wx.showLoading({
   title: '加载中...',
  })
  if(this.data.check == 0){
   this.setData({
    check:1
   })
   wx.downloadFile({
    url: that.data.url,
    filePath: wx.env.USER_DATA_PATH + '/' + that.data.name,
    success: function (res) {
     var filePath = res.filePath
     wx.openDocument({
      filePath: filePath,
      success: function (res) {
       wx.hideLoading();
      }
     })
    }
   })
  }else{
   wx.hideLoading();
   this.setData({
    show_btn:true
   })
  }
 }, 
})

好了就是这些了,如果还有不懂的朋友欢迎咨询,另外如果有更好的办法,或者是支持ios下载pdf的文件的,或者转发pdf的更好的方法也希望能告诉柚子一下,柚子感激不尽!

总结

以上所述是小编给大家介绍的微信小程序实现打开并下载服务器上面的pdf文件到手机,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!


推荐阅读
  • 微信小程序详解:概念、功能与优势
    微信公众平台近期向200位开发者发送了小程序的内测邀请。许多人对微信小程序的概念还不是很清楚。本文将详细介绍微信小程序的定义、功能及其独特优势。 ... [详细]
  • 小程序的授权和登陆
    小程序的授权和登陆 ... [详细]
  • 对于众多创业公司而言,选择小程序或小视频的发展方向至关重要。本文将深入分析小程序和小视频的特点、优势及局限,帮助创业者做出更明智的选择。 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • 深入解析微信小程序开发中的全局配置文件设置与优化技巧
    本文深入探讨了微信小程序开发中全局配置文件的设置与优化技巧,详细解析了 `app.js`、`app.json`、`app.wxss` 和 `project.config.json` 的功能与最佳实践。通过合理配置这些文件,开发者可以显著提升小程序的性能和用户体验。文章还介绍了如何利用这些配置文件进行模块化开发和调试,帮助开发者更好地管理和维护小程序项目。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • 如何发送微信语音口令红包
    微信不仅支持传统的文字口令红包,还新增了语音口令红包功能。用户可以通过语音口令来领取红包,增加了趣味性和互动性。本文将详细介绍如何发送微信语音口令红包。 ... [详细]
  • 经过短暂的休整,我们再次推出新的小程序功能,进一步提升用户体验。现在,小程序页面不仅支持放置转发按钮,还新增了长按快速转发的功能,让用户能够更加便捷地分享页面内容。这一更新将为开发者提供更多创意空间,同时也大幅提升了用户的互动性和使用便利性。 ... [详细]
  • Java 点餐系统源代码附带管理后台(免费提供)
    本项目提供了一套基于 Java 的点餐系统,包括前端小程序和后端管理平台。采用 Spring Boot 和 SSM 框架,结合 MySQL 和 Redis 数据库技术,适用于学习和二次开发。有需要源代码的开发者可以通过私信联系,免费获取下载链接。 ... [详细]
  • 基于Java的微信小程序:Spring Boot驱动的中小学家校互动与电子作业管理平台
    基于Java的微信小程序,采用Spring Boot作为后端框架,构建了一个高效的中小学家校互动与电子作业管理平台。前端使用了uni-app框架,确保跨平台兼容性。该平台集成了家校沟通、作业发布与管理、学生成绩查询等功能,旨在提升教育管理效率和家长参与度。后端开发环境配置完善,采用Spring Boot、MyBatis等技术栈,确保系统的稳定性和扩展性。 ... [详细]
  • 微信小程序图片上传功能详解:wx.chooseImage与wx.uploadFile的使用方法与注意事项
    在微信小程序中,图片上传功能是开发者常用的功能之一。本文详细介绍了 `wx.chooseImage` 和 `wx.uploadFile` 的使用方法及注意事项。通过 `wx.chooseImage`,用户可以选择本地图片或拍摄新照片,而 `wx.uploadFile` 则用于将选中的图片上传到服务器。文章还提供了代码示例,帮助开发者更好地理解和应用这两个 API。此外,文中还讨论了常见的错误处理和性能优化技巧,确保图片上传过程的稳定性和高效性。 ... [详细]
  • 在微信小程序中,页面的加载机制与传统应用类似,每次打开新页面时都会创建一个新的视图对象并进行叠加。当用户点击返回按钮时,当前页面会被关闭并从堆栈中移除。这一过程涉及页面管理与资源释放,确保了用户体验的流畅性和系统的稳定性。微信小程序支持同时打开的页面数量有限制,最多可同时保持10个页面的打开状态,以避免内存溢出和性能下降。 ... [详细]
  • 【小程序开发】iOS平台时间显示异常问题解析与优化方案
    在iOS平台上,小程序的时间显示出现异常的问题主要源于iOS系统对特定日期格式的支持不足。具体而言,iOS无法正确解析“2019-12-23”这种标准的日期格式,需要将其转换为“20191223”这种连续的数字格式。本文详细分析了这一问题的成因,并提出了一系列优化方案,以确保小程序在iOS平台上的时间显示功能正常运行。此外,我们还探讨了在小程序编辑功能中如何高效地进行日期格式的转换,以提升用户体验。 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 修复一个 Bug 竟耗时两天?真的有那么复杂吗?
    修复一个 Bug 竟然耗费了两天时间?这背后究竟隐藏着怎样的复杂性?本文将深入探讨这个看似简单的 Bug 为何会如此棘手,从代码层面剖析问题根源,并分享解决过程中遇到的技术挑战和心得。 ... [详细]
author-avatar
何泳辰_439
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有