CameraPreview takePicture()什么也没有返回
问题描述:
我一直在尝试更新一个老版本的相机预览插件,它仍然有setOnPictureTakenHandler
方法允许我返回图片的url。CameraPreview takePicture()什么也没有返回
该插件的较新版本使用takePicture()
方法,我可以在其中定义一个函数,该函数将被调用onSuccess,并且我定义该函数以返回拍摄图像的URL。但我无法获得onSuccess
功能之外的URL!
我刚刚转移到打字稿,所以我想这是某种管理变数的错误。我正在使用cameraPreview的提供程序,并且已为该插件的takePicture()
方法创建了一个信封。该信封应该将URL返回给我已经注入提供者的控制器。
这里是供应商的信封代码:
url:string;
takePictures2() :string {
this.cameraPreview.takePicture(function(imgData){
this.url = "data:image/jpeg;base64" + imgData;
}).then();
return this.url;
};
这里是控制器代码:
takePictures() {
let url : string = this.cameraPreview.takePictures2();
console.log(url);
}
答
我没有测试过下面的代码,但我想:
1) PromisifytakePicture2
。它包装插件的takePicture
方法和解决完成后的网址:
takePictures2(): Promise<string> {
return new Promise((resolve, reject) => {
this.cameraPreview.takePicture(function(imgData) {
resolve("data:image/jpeg;base64" + imgData);
});
};
};
2)使takePictures
等待takePictures2解决:
takePictures() {
let url : string;
this.cameraPreview.takePictures2().then(url => {
this.url = url;
console.log(url);
);
};
非常感谢你,它工作得很好了我需要! – pol52