我一直在尝试更新一个旧应用程序,该应用程序具有旧版本的相机预览插件,该插件仍然具有允许我返回图像 url 的setOnPictureTakenHandler
方法。
较新版本的插件使用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(承诺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);
);
};