此接口处理的数据在PC终端使用时,可能会被其它应用读取,所以建议压缩包中请勿包含敏感数据,并将解压数据存放在固定路径下。
描述
解压文件。
OBJECT参数
参数 |
类型 |
是否必填 |
说明 |
|---|---|---|---|
srcUri |
string |
是 |
源文件的uri,不能是tmp类型的uri。 注意:
路径中不能包含中文字符。 |
dstUri |
string |
是 |
目标目录的uri,不能是应用资源路径和tmp类型的uri。 注意:
路径中不能包含中文字符。 |
topSize(非厂商联盟规范) |
number |
否 |
最大解压大小(限制最大解压大小,例如100*1024*1024表示最大解压100M,如果压缩包解压后超过100M,则不解压)。默认值为:104857600,即100*1024*1024。 |
topFileNumbers(非厂商联盟规范) |
number |
否 |
最大解压文件个数(限制最大解压文件个数,例如100表示解压后最多100个文件,如果压缩包解压后文件(含目录)超过100,则不解压)。 |
success |
function |
否 |
成功回调。 |
fail |
function |
否 |
失败回调。 |
complete |
function |
否 |
执行结束后的回调。 |
fail返回错误码:
错误码 |
说明 |
|---|---|
202 |
参数错误。 |
300 |
I/O错误。 |
示例代码
zip.decompress({
srcUri: 'internal://cache/test.zip',
dstUri: 'internal://files/unzip/',
success: function () {
console.log(`handling success`)
},
fail: function (data, code) {
console.log(`handling fail`)
}
})
<template>
<div class="doc-page">
<div class="item-container">
<div class="item-content">
<text class="txt">src file:{{srcUri}}</text>
</div>
<input type="button" class="btn" onclick="decompress" value="decompress file" />
</div>
</div>
</template>
<style>
.doc-page{
flex: 1;
flex-direction: column;
}
.item-container {
margin-bottom: 50px;
margin-right: 60px;
margin-left: 60px;
flex-direction: column;
}
.item-content {
flex-direction: column;
background-color: #ffffff;
padding-left: 30px;
padding-right: 30px;
padding-top: 20px;
padding-bottom: 20px;
margin-bottom: 30px;
align-items: flex-start;
}
.txt {
padding-top: 15px;
padding-bottom: 15px;
}
.btn {
background-color: #0faeff;
color: #ffffff;
width:600px;
height: 100px;
font-size: 50px;
border-radius:15px;
}
</style>
<script>
import zip from '@system.zip'
import prompt from '@system.prompt'
export default {
private: {
srcUri:'internal://cache/test.zip'
},
onInit() {
this.$page.setTitleBar({ text: 'zip' })
},
decompress(){
const self = this
zip.decompress({
srcUri: self.srcUri,
dstUri: 'internal://files/unzip/',
success: function () {
prompt.showToast({
message: `handling success`
})
},
fail: function (data, code) {
console.log('handling fail')
prompt.showToast({
message: `handling fail, ${code}: ${data}`
})
}
})
}
}
</script>
效果图如下:
