首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从图像库中获取图像

从图像库中获取图像
EN

Stack Overflow用户
提问于 2019-03-09 09:52:23
回答 2查看 1.1K关注 0票数 0

离子3,角CLI 7,角5。

无法从库中获取图像。

它在调用getPicture时失败。我收到一个错误:

“Object(WEBPACK_IMPORTED_MODULE_1__ionic_native_core“cordova”)不是一个函数。(在‘Object(WEBPACK_IMPORTED_MODULE_1__ionic_native_core“cordova”)(this,“getPicture”、{“callbackOrder”:“反向”}、参数)‘中,‘Object(WEBPACK_IMPORTED_MODULE_1__ionic_native_core“cordova”)’是对象的实例)

我已经尝试过将所有本机插件都放到5.0.0-beta.15版本中,但这并没有帮助。

我尝试过ImagePicker和摄像头插件,但都给出了相同的错误。

ImagePicker (插件是@离子型本机/图像选择器):

代码语言:javascript
运行
复制
let options = {
  maximumImagesCount: 1
};
this.imagePicker.getPictures(options).then((results) => {
  for (var i = 0; i < results.length; i++) {
      this.imgPreview = results[i];
      this.base64.encodeFile(results[i]).then((base64File: string) => {
        this.regData.avatar = base64File;
      }, (err) => {
      });
  }
}, (err) => { console.log(err); });

照相机(插件是@离子型本机/照相机):

代码语言:javascript
运行
复制
var sourceType = this.camera.PictureSourceType.PHOTOLIBRARY;
var options = {
  quality: 100,
  sourceType: this.camera.PictureSourceType.PHOTOLIBRARY,
  saveToPhotoAlbum: false,
  correctOrientation: true
};
this.camera.getPicture(options).then((imagePath) => {
  console.log("Img path: " + imagePath);
  if (this.platform.is('android') && sourceType === this.camera.PictureSourceType.PHOTOLIBRARY) {
    this.filePath.resolveNativePath(imagePath)
      .then(filePath => {
        let correctPath = filePath.substr(0, filePath.lastIndexOf('/') + 1);
        let currentName = imagePath.substring(imagePath.lastIndexOf('/') + 1, imagePath.lastIndexOf('?'));
      });
  } else {
    var currentName = imagePath.substr(imagePath.lastIndexOf('/') + 1);
    var correctPath = imagePath.substr(0, imagePath.lastIndexOf('/') + 1);
  }
}, (err) => {
  console.log(err);
});

有人能帮帮我吗?

UPD:我将ImagePicker和Base64降级为与本机内核相同的版本,它似乎开始起作用了。但是当我试图运行Ionic DevApp的应用程序时,它一直告诉我,我应该将telerik-imagepicker插件添加到cordova中,但它已经在它的列表上了!(是的,我确实试着添加)。所以错误是"plugin_not_installed“。

UPD 2:我不得不离开这个项目,所以不幸的是我不知道解决方案是什么,因为我没有检查Sergey提出的想法

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-12 17:17:55

由于您使用的是Ionic 3,您需要确保根据文档安装和导入插件:

请注意这是用于Ionic 4:https://ionicframework.com/docs/native/image-picker

安装说明:

离子cordova插件添加cordova插件-telerik-imagepicker npm 安装@离子型本机/图像选择器

这是给Ionic 3的

离子cordova插件添加cordova- plugin -telerik-imagepicker -变量PHOTO_LIBRARY_USAGE_DESCRIPTION=“您的使用信息”npm安装-保存@离子型本机/图像选择器@4

请注意@4,这有助于npm安装相关插件的离子v3。

还请注意,导入语句将有所不同:

离子4有:

代码语言:javascript
运行
复制
import { ImagePicker } from '@ionic-native/image-picker/ngx';

离子3有:

代码语言:javascript
运行
复制
import { ImagePicker } from '@ionic-native/image-picker';

要删除插件:

cordova插件列表

然后

cordova插件删除PLUGIN_NAME

然后为您的框架版本安装适当的插件。

票数 -1
EN

Stack Overflow用户

发布于 2019-03-09 10:18:53

在阅读了我的答案后,似乎在构建应用程序时,依赖项无法正确安装或缺少对它们的引用。乍一看,代码似乎是正确的。无论如何,你需要升级到版本4,因为它也看到,离子v3有问题的相机在其他一些帖子。“离子型3不支持那些插件”

这个问题也有类似的问题,它通过重新安装适当的依赖版本https://stackoverflow.com/a/54436891/4229159而得到了解决。

否则,如果您只将相机隔离在一个小应用程序中,那么它在V4中仍然会产生同样的错误吗?(仅支持版本)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55076062

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档