uniapp跳转webview下载pdf终极解决方案

众所周知,uniapp的webview有特殊的安全策略,无法实现正常下载,下载会导致文件下载失败,那么该如何解决这个问题呢?官方提示可以将文件转blob、blob转base64进行下载,我研究了半天,发现这条路行不通,于是乎自己想出了另一方案。

背景说明:

APP为uniapp开发;

webview为泛微高代码平台开发的react的页面(这块经研究,应该啥语言开发的都可以,html、vue、react都行,无限制);

解决方案:

webview进行下载的时候,向uniapp发送消息,消息内容为文件的base64,让uniapp触发下载事件。

webview:

1、引入uniapp的webview.js文件

2、在页面中引用,调用流程需严格复制下面代码,不要进行编辑和修改

    uni.webView.postMessage({
                               data: {
                                      pdfFile: base64data
                                    }
                            });

base64data需要自行将文件转成base64,这一步就省略了,如此webview就可以了。

app:

1、将base64转临时路径,方法如下

/**  
			 * base64字符串转成文件
			 * @param {String} base64Str // 允许包含前缀
			 * @param {String} fileName // 文件名称:1663061363470.xlsx
			 * @param {Object} callback  // 返回本地路径径URL,file:///xxx/doc/1663062980631.xlsx
			 */
			base64ToFile2(
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值