我一直在尝试更新旧应用程序,该应用程序具有旧版本的相机预览插件,该插件仍然具有允许我返回图像网址的setOnPictureTakenHandler
方法。
新版本的插件使用takePicture()
方法,我可以在其中定义一个将被调用onSuccess的函数,我定义了该函数以返回所拍摄图像的URL。但我无法在onSuccess
函数之外获取该网址!
我刚刚转向打字稿,所以我猜这是管理变量的一些错误。我正在使用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);
}
答案 0 :(得分:0)
我还没有测试下面的代码,但我会:
1)Promisify takePicture2
。它包装插件的takePicture
方法并在完成时解析URL:
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);
);
};