更新记录

1.0.0(2025-09-01)

renderjs方式实现webdav, 插件市场一直没有uniapp可用的webdav,所以决定自己写一个


平台兼容性

uni-app(4.07)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - × -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式

仅适用于 uni-app Android 项目,renderjs 方式实现 webdav 功能

<template>
  <view class="content">
    <!-- 在使用的页面直接使用 -->
    <!-- @all 获取所有文件的回调 -->
    <!-- @data 获取文件的回调 -->
    <!-- @status 状态码的回调 -->
    <webdav ref="client" @all="getAll" @data="getData" @status="getStatus" />

    <button @click="init">连接 webdav</button>
    <button @click="onPutDav">上传数据</button>
    <button @click="onGetDav">获取数据</button>
    <view class="text-area">
      <text class="title">{{data}}</text>
    </view>
    <button @click="onGetAll">获取所有</button>
    <view class="text-area">
      <text class="title">{{all}}</text>
    </view>
  </view>
</template>

<script>
  export default {
    data() {
      return {
        data: '',
        all: []
      }
    },
    mounted() {
      // this.init()
    },
    methods: {
      // 初始化 webdav
      init() {
        // 初始化
        this.$refs.client.init({
          url: 'https://jike.teracloud.jp/dav/',
          username: 'test',
          password: 'test',
          filePath: '/webdav',
          fileName: 'backup.json'
        })
        // 单独设置上传目录和文件名
        this.$refs.client.setFile({
          filePath: '/webdav',
          fileName: 'backup.json',
        })
      },
      onGetDav() {
        // 触发获取数据操作
        this.$refs.client.getDav()
      },
      onGetAll() {
        // 获取目录下的所有文件
        this.$refs.client.getAll()
      },
      onPutDav() {
        // 上传数据
        this.$refs.client.putDav('测试数据')
      },
      getAll(data) {
        // 获取所有的文件的回调事件
        this.all = data
      },
      getData(data) {
        // 获取数据的回调事件
        console.log('获取dav数据', data, typeof data)
        this.data = data
      },
      getStatus(code) {
        // 状态码的回调事件
        switch (code) {
          case '0':
            console.log(code, '连接成功')
            break;
          case '00':
            console.log(code, '连接失败')
            break;
          case '1':
            console.log(code, '获取目录下所有文件成功')
            break;
          case '10':
            console.log(code, '获取目录下所有文件失败')
            break;
          case '2':
            console.log(code, '上传数据成功')
            break;
          case '20':
            console.log(code, '上传数据失败')
            break;
          case '3':
            console.log(code, '获取数据成功')
            break;
          case '30':
            console.log(code, '获取数据失败')
            break;
        }
      }
    }
  }
</script>

<style>
  .content {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
  }

</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

暂无用户评论。