使用cordova媒体捕获和文件传输时出现权限问题



我正在尝试使用cordova插件媒体捕获来捕获视频,并使用cordova-plugin文件传输将其上传。

以下是媒体捕获呼叫:

navigator.device.capture.captureVideo(
    app.view.controller.success,
    app.view.controller.error,
    {limit: 1}
);

成功回调:

app.view.controller.success = function(event)
{
    var options = new FileUploadOptions();
        options.fileKey = 'data[Request][video]';
        options.fileName = event[0].name;
        options.mimeType = event[0].type;
        options.chunkedMode = false;
    var transfer = new FileTransfer();
    transfer.upload(
        event[0].localURL,
        app.view.uploadurl,
        app.view.controller.uploaded,
        app.view.controller.error,
        options,
        true
    );
};

目前,上传和错误回调只执行参数的console.log()。

问题是它在android 5.1上运行良好,但在android 6.0上给我一个EAESS错误(transfer.upload调用)。错误代码1,无法读取文件)。

我可以确认视频已经录制,它显示在图库应用程序中。但是文件传输插件无法读取。

有人知道线索吗?

确保已对uri:app.view.uploadurl 进行编码

如下所示:encodeURI("http://some.server.com/upload.php")

根据这两个github问题,如果不同时使用MANAGE_EXTERNAL_STORAGE并运行从播放商店中排除

https://github.com/apache/cordova-plugin-file/issues/426

https://github.com/apache/cordova-plugin-media-capture/issues/125

最新更新