微信小程序踩坑:wx.openDocument(Object object)打不开文件

这篇具有很好参考价值的文章主要介绍了微信小程序踩坑:wx.openDocument(Object object)打不开文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

官网:

wx.openDocument(Object object) | 微信开放文档微信开发者平台文档https://developers.weixin.qq.com/miniprogram/dev/api/file/wx.openDocument.html微信小程序踩坑:wx.openDocument(Object object)打不开文件
说的fileType是可选参数!

 但是不加上的话,就打不开!

加上之后就能打开了。

微信小程序踩坑:wx.openDocument(Object object)打不开文件

 关键代码:

	wx.openDocument({
									filePath: filePath,
									fileType: fileType,
									showMenu: true,
									success: function(res) {
										console.log('打开文档成功');
									},
									fail: function(error) {
										wx.showToast({
											icon: 'none',
											title: '打开文件失败'
										});
									},
								});

测试数据:先从文件的url里面筛选文件格式:

let ss='https://www.baidu.com/f85284da55164de2a2d9cb0b62fabab1.pdf?response-content-disposition=attachment%3Bfilename%3D%E6%9D%A8%E5%AD%90%E5%B9%BF%E5%91%8A%E5%87%BA%E8%B4%A7%E5%8D%95.pdf&AWSAccessKeyId=XIDM2OFRLLDUR8YFJJWM&Expires=1679793304&Signature=WcNl5HmwWOvNU%2F51f%2F5ZQ1h9BbA%3D'
ss.substring(ss.lastIndexOf(".")+1).split('&')[0]
'pdf'

demo: 

	/**
			 * 微信小程序只支持fileType这些类型:
			 *       doc  doc 格式
			 *         docx  docx 格式
			 *         xls  xls 格式
			 *         xlsx  xlsx 格式
			 *         ppt  ppt 格式
			 *         pptx  pptx 格式
			 *         pdf  pdf 格式
			 * @param url
			 */
			downloadFile(url) {
url='https://www.baidu.com/f85284da55164de2a2d9cb0b62fabab1.pdf?response-content-disposition=attachment%3Bfilename%3D%E6%9D%A8%E5%AD%90%E5%B9%BF%E5%91%8A%E5%87%BA%E8%B4%A7%E5%8D%95.pdf&AWSAccessKeyId=XIDM2OFRLLDUR8YFJJWM&Expires=1679793304&Signature=WcNl5HmwWOvNU%2F51f%2F5ZQ1h9BbA%3D'
				console.log('url', '---的值是?', url)

				const sufInx = url.lastIndexOf(".");

				if (sufInx === -1) {

					uni.showModal({
						title: '提示信息',
						content: '文件错误!',
						success: function(res) {
							if (res.confirm) {
								//console.log('用户点击确定');
							} else if (res.cancel) {
								//console.log('用户点击取消');
							}
						}
					});
					return false
				}
				let fileType = ''
				console.log('sufInx', '---的值是?', sufInx)
				fileType = url.substring(sufInx + 1).split('&')[0]

				console.log('fileType', '---的值是?', fileType)
				let fileTypeArr = ['doc', 'docx', 'xls', 'xlsx', 'ppt', 'pptx', 'pdf']

				console.log('fileType', '---的值是?', fileType)

				if (!fileTypeArr.includes(fileType)) {
					uni.showModal({
						title: '提示信息',
						content: '只能打开word/excel/ppt/pdf文件(比如:doc, docx, xls, xlsx, ppt, pptx, pdf这些类型的文件)!',
						success: function(res) {
							if (res.confirm) {
								//console.log('用户点击确定');
							} else if (res.cancel) {
								//console.log('用户点击取消');
							}
						}
					});
					return false
				} else {

					wx.downloadFile({
						url: url, //仅为示例,并非真实的资源
						success: (res) => {
							if (res.statusCode === 200) {
								console.log('下载成功--res', res);
								var filePath = res.tempFilePath;
								wx.openDocument({
									filePath: filePath,
									fileType: fileType,
									showMenu: true,
									success: function(res) {
										console.log('打开文档成功');
									},
									fail: function(error) {
										wx.showToast({
											icon: 'none',
											title: '打开文件失败'
										});
									},
								});
							}
						},
						fail: function(err) {
							console.log('fail')
							console.log(err)
							wx.showToast({
								icon: 'none',
								title: '下载文件失败'
							});
						}
					});
				}

			},


最后,pdf打开成功:

微信小程序踩坑:wx.openDocument(Object object)打不开文件

 文章来源地址https://www.toymoban.com/news/detail-505339.html

 

到了这里,关于微信小程序踩坑:wx.openDocument(Object object)打不开文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序wx.createCanvasContext废弃,使用wx.createOffscreenCanvas接口的绘制canvas 2d海报遇到的踩坑经验。

    在wxml页面写id,canvas-id已经没用了。然后像html一样,使用js获取这个canvas标签组件,在微信的js获取使用wx自带的方法。如下 

    2024年02月11日
    浏览(44)
  • uniApp 使用uni.openDocument(object)预览pdf、excel、word等文件

    这里咱们直接用的uniapp官方提供的uni.downloadFile方法调用手机第三方能打开文件的工具,比如wps等(ps:这里实现的是APP文件预览)。 1.文件路径(url)必须是浏览器能直接访问的文件。比如:http://xx.cc.com/images/abc.xlsx 这种格式。 最开始我是用的后台给的接口 file/dowload?fileId=1

    2024年02月11日
    浏览(56)
  • 小程序中打开pdf文件(wx.downloadFile+wx.openDocument)

    用 wx.downloadFile({}) 下载,然后 用 wx.openDocument({}) 打开文件 1、先请求到 pdf 路径网络地址, 将 pdf 下载到本地 2、从本地文件上传到一个临时路径中,将本地文件删除 3、 打开临时路径的文件 注意 :需要在开发者管理中,配置一下downloadFile合法域名:         微信公众平

    2024年02月11日
    浏览(38)
  • uni.openDocument 微信小程序在苹果手机打开文档失败

    解决办法:         1,ios端需要传fileType参数                 uni.openDocument({                         filePath: \\\"文件路径\\\",                         fileType: \\\"docx\\\",                         success: res = {                             console.log(\\\'打开

    2024年02月09日
    浏览(38)
  • 微信小程序报错:WAServiceMainContext.js:2 Object(env: Windows,mp,1.05.2203070; lib: 2.14.1)

    跳转页面时报错:WAServiceMainContext.js:2 Object(env: Windows,mp,1.05.2203070; lib: 2.14.1) 刚开始找了好多解决方法都没有解决, 最后发现是app.json入口文件pages里面没有配置路径, 导致报错,跳转页面不成功,配置完路径,完美解决。 补充: 今天又遇到这个报错了 ,这次app.json入口文件

    2024年02月12日
    浏览(43)
  • 微信小程序audio组件渲染错误[渲染层错误] Uncaught (in promise) [object DOMException](env: Windows,mp,1.06.2209190

    wxml ts 一开始以为现在移除了audio组件的action属性,因为在官方文档中找不到这个属性,后来发现不是 获取src中链接的资源需要一定时间,如果 一开始就在data中设置好了action方法 就会出现页面加载的瞬间就渲染页面从而来不及渲染的问题 把data中的action设为空, 再在合适的

    2024年02月05日
    浏览(50)
  • 微信小程序 wx.showModal

    微信小程序--wx.showModal_海轰Pro的博客-CSDN博客

    2024年02月15日
    浏览(50)
  • 微信小程序-支付(wx.requestPayment)

    (学习中,持续更新) 直接调用的接口为wx.requestPayment(小程序前端调用)。 官方文档的请求例子为: 其中paySign官方文档给出了一个例子: MD5(appId=wxd678efh567hg6787nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VSpackage=prepay_id=wx2017033010242291fcfe0db70013231072signType=MD5timeStamp=1490840662key=qazwsxedcrfvtg

    2024年02月12日
    浏览(37)
  • 微信小程序-登录(wx.login)

    用户微信登录小程序有两种情况,分别为弹出登录提示和不弹出登录提示两种。弹出登录提示的情况下,用户确定后会向后台传入更多参数,例如用户昵称等。不弹出登录提示只能获取到用户的临时登录凭证code。主要根据第二种情况进行描述。 这个code具有时效性,能用于区

    2024年02月15日
    浏览(50)
  • 微信小程序 wx:if使用

    在微信小程序中,可以使用 wx:if 指令来控制某个元素是否需要被渲染到页面上。根据条件表达式的结果, wx:if 指令决定元素是否显示。 下面是使用 wx:if 的基本示例: 在上述代码中, wx:if 指令的值为一个条件表达式 {{condition}} ,根据该条件表达式的结果决定是否渲染 view 元

    2024年02月09日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包