Ionic 2相机让应用程序崩溃

时间:2016-11-21 22:06:33

标签: ionic2

当我使用应该在我的Android设备上启动相机的相机按钮时,它通过chrome检查给我这个错误:

file:///storage/emulated/0/Android/data/io.ionic.starter/cache/.Pic.jpg通过ClipData.Item.getUri()

暴露在app之外

我无能为力,无论如何都找不到..

感谢所有帮助!

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.12
Ionic App Lib Version: 2.1.7
Ionic App Scripts Version: 0.0.45
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Windows 10
Node Version: v6.9.1
Xcode version: Not installed

4 个答案:

答案 0 :(得分:5)

传入宽度和高度为我解决了崩溃问题。

    const options: CameraOptions = {
      quality: 100,
      targetWidth: 100,
      targetHeight: 100,
      destinationType: Camera.DestinationType.DATA_URL,
      encodingType: Camera.EncodingType.JPEG,
      mediaType: Camera.MediaType.PICTURE
    }

    Camera.getPicture(options).then((imageData) => {
      // imageData is either a base64 encoded string or a file URI
      // If it's base64:
      this.idImage = imageData;
      this.idImageSelected = 'data:image/jpeg;base64,' + imageData;
    }, (err) => {
      // Handle error
    });
  }

答案 1 :(得分:1)

解决了将public class ClientCallbackInfo { public INotifierCallback Callback { get; set; } public string SomeOtherClientInfo { get; set; } } android更新为6.1.1然后更新相机插件的问题。

检查你的android cordova平台版本:

select * from ( Select top 10 [FirstName], [LastName], [BusinessEntityID] From [AdventureWorks2014].[Person].[Person] order by LastName, FirstName ) X order by BusinessEntityID

如果android是6.0<然后你需要更新它并将更新的版本添加到你的项目中,这应该有效:

cordova platform

但在我的情况下它不会更新android平台版本所以我必须显式安装6.1.1

cordova platform ls

然后更新到6.1.1然后我删除并添加了cordova相机插件到我的项目:

cordova platform update android

然后

cordova platform add android@6.1.1 --save

然后安装了最新的cordova-plugin-camera,我可以在config.xml中看到它

我已经将我的应用程序再次部署到设备cordova plugin remove cordova-plugin-camera --save,但它确实有效。

答案 2 :(得分:0)

我使用此选项:在Android设备中运行良好

 doCamera() {
      Camera.getPicture({
           destinationType: Camera.DestinationType.FILE_URI,
           saveToPhotoAlbum: true,
           mediaType: Camera.MediaType.PICTURE,
      }).then((imageURI) => {
           this.changeImageString(imageURI);
      }, (err) => {
           console.log("Error: " + err);
      });

 }

请参阅enter link description here

离子信息:

Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.0-rc.1
Ionic CLI Version: 2.1.8
Ionic App Lib Version: 2.1.4
Ionic App Scripts Version: 0.0.38
Node Version: v6.8.1

答案 3 :(得分:0)

我只在三星Galaxy tab android 5.1中重现了这个问题。

我尝试了上述所有解决方案但没有成功。作为一种解决方法,我添加了插件cordova.plugins.diagnostic。

本教程有助于找到解决方案: https://code.tutsplus.com/tutorials/how-to-create-a-camera-app-with-ionic-2--cms-28205