科尔多瓦相机插件allowEdit属性在少数手机中不起作用

Posted

技术标签:

【中文标题】科尔多瓦相机插件allowEdit属性在少数手机中不起作用【英文标题】:cordova camera plugin allowEdit property not working in few phones 【发布时间】:2018-07-09 11:14:45 【问题描述】:

我开发了一个 Cordova 应用程序,我在其中使用 Cordova 相机插件 (https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/index.html) 通过相机或图库从手机拍摄图像,并根据固定的帧大小进行裁剪以保存在服务器上。但是当用户从图库中选择图像时,裁剪工具不适用于某些手机,例如 Redmi Note 4、Redmi Note 3、Redmi 3S Prime、LeTv 手机,尽管我给出了“allowEdit:true”。

JS代码:-

navigator.camera.getPicture(uploadPhoto, function(message) 
        , 
        //quality: 99,
        quality: 25,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.PHOTOLIBRARY,
        allowEdit: true,
        targetWidth: 0,
        targetHeight: 0
        );

我应该如何解决这个裁剪问题?

【问题讨论】:

【参考方案1】:

来自文档

allowEditandroid 上是不可预测的,不应该使用它!这个插件的 Android 实现试图找到并使用一个 用户设备上的应用程序进行图像裁剪。该插件有 无法控制用户选择执行图像的应用程序 裁剪,用户很有可能选择一个 不兼容的选项并导致插件失败。这有时有效 因为大多数设备都带有处理裁剪的应用程序 一种与此插件(Google Plus Photos)兼容的方式,但它 依靠这种情况是不明智的。如果图像编辑是 对您的应用程序至关重要,请考虑寻找第三方库 或提供自己的图像编辑实用程序的插件 强大的解决方案。

所以,基本上不要使用它,因为它不能保证工作,因为它需要一个外部应用程序来进行裁剪,并不是所有的设备都会有它。

【讨论】:

我尝试使用 cordova-plugin-crop 裁剪图像,但仍然无法正常工作。你能帮我如何使用这个插件吗? 接受这个答案并创建一个关于 cordova-plugin-crop 的新答案,提供您正在使用的代码 完全不可预测的功能。有一次,我在使用 Cordova 应用程序时遇到问题,在 ios 上,文件上传和 allowedit 一切正常,但在 android 上,我在上传时收到了 CORS 错误。将 allowedit 设置为 false 并且 android 上的上传也开始工作。希望我节省了一些时间搜索;)

以上是关于科尔多瓦相机插件allowEdit属性在少数手机中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

科尔多瓦相机插件在 ios 8.1 中不起作用

如何使用科尔多瓦相机插件重播录制的视频?

科尔多瓦,从相机胶卷中获取所有照片

如何更改 Cordova 相机插件选项

英特尔 xdk 科尔多瓦本地插件不起作用

Cordova:在混合应用程序中显示相机会导致屏幕尺寸被压扁