uni-app 插件需求 支持删除手机相册里的视频文件 支持安卓即可

发布于 1周前 作者 phonegap100 来自 Uni-App

uni-app 插件需求 支持删除手机相册里的视频文件 支持安卓即可

支持删除手机相册里的视频文件,支持安卓即可

3 回复

可以做 专业插件开发 q 1196097915 主页 https://ask.dcloud.net.cn/question/91948


可以做,联系QQ:1804945430

为了满足你在uni-app中删除安卓设备手机相册里的视频文件的需求,我们可以利用Android的原生功能通过Java插件来实现。下面是一个基本的实现步骤和代码示例。

步骤:

  1. 创建自定义插件:在uni-app项目中创建一个自定义的原生插件,用于调用Android的API删除视频文件。

  2. 编写Android原生代码:在插件中实现删除视频文件的功能。

  3. 调用插件:在uni-app的JavaScript代码中调用这个插件的功能。

代码示例:

1. 创建插件

native-plugins目录下创建一个名为DeleteVideoPlugin的文件夹,并在其中创建以下文件:

  • DeleteVideoPlugin.java
  • manifest.json

2. 编写DeleteVideoPlugin.java

package com.example.uniappplugin;

import android.content.Context;
import android.net.Uri;
import android.provider.MediaStore;
import android.database.ContentObserver;
import android.database.Cursor;
import android.os.Handler;
import android.os.Looper;
import io.dcloud.feature.uniapp.bridge.UniJSCallback;
import io.dcloud.feature.uniapp.common.UniModule;

public class DeleteVideoPlugin extends UniModule {
    private Context mContext;

    @Override
    public void init(Context context) {
        mContext = context;
    }

    public void deleteVideo(String videoId, UniJSCallback callback) {
        Uri videoUri = Uri.withAppendedPath(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, videoId);
        int deletedRows = mContext.getContentResolver().delete(videoUri, null, null);
        
        if (deletedRows > 0) {
            callback.invoke("Video deleted successfully");
        } else {
            callback.invoke("Failed to delete video");
        }
    }
}

3. 配置manifest.json

{
  "id": "DeleteVideoPlugin",
  "name": "Delete Video Plugin",
  "version": "1.0.0",
  "description": "A plugin to delete videos from the device's gallery.",
  "platforms": {
    "android": {
      "package": "com.example.uniappplugin.DeleteVideoPlugin",
      "class": "DeleteVideoPlugin"
    }
  }
}

4. 调用插件

在uni-app的JavaScript代码中调用插件:

const deleteVideoPlugin = uni.requireNativePlugin('DeleteVideoPlugin');

function deleteVideo(videoId) {
    deleteVideoPlugin.deleteVideo(videoId, (result) => {
        console.log(result);
    });
}

// 示例调用
const videoId = "1"; // 这里需要替换为实际的视频ID
deleteVideo(videoId);

注意:

  1. 权限:确保在AndroidManifest.xml中添加了必要的权限,如READ_EXTERNAL_STORAGEWRITE_EXTERNAL_STORAGE

  2. 视频ID:获取视频ID通常需要通过查询MediaStore来实现,这里为了简单起见直接使用了videoId作为示例。

  3. 兼容性:不同版本的Android可能在API调用上有所差异,需要根据实际情况进行调整。

通过上述步骤和代码,你应该能够在uni-app中实现删除安卓设备手机相册里的视频文件的功能。

回到顶部