首页 > 解决方案 > 当我在模拟器上运行我的代码时,Cordova-dialogs-plugin 没有显示

问题描述

我正在制作一个应用程序,其中一部分需要在我的相机拍照后弹出一个对话框。更具体地说,它是一个使用 navigator.notification.confirm 的确认对话框

我被困在对话部分。我的相机拍照后它没有出现

我尝试调用函数 initDialog(); 在我的 cameraSuccess() 函数中,但它并没有真正做太多。我已经设法只输入了一个常规的 alert() 代码并且它起作用了,所以问题肯定在于我如何尝试使用对话框插件。我什至尝试使用 innerHTML 创建一个按钮,一旦单击该按钮会导致对话框,但无济于事。

//camera code
function cameraSuccess(imageData){
    document.getElementById("camera-picture").src= imageData;
    initDialog();
}

function cameraError(error){
    alert(error);
}

function myCameraInit(){
    console.log(navigator.camera);
    var cameraOptions = {
        quality: 100,
        destinationType: navigator.camera.DestinationType.FILE_URI,
        sourceType: navigator.camera.PictureSourceType.CAMERA
    };
    navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);
}

//dialogs code    
function initDialog() {
    var message = "Proceed with analysing photo?";
    var title = "Confirmation";
    var buttonLabels = "Ok, got it.";

    navigator.notification.confirm(message, confirmCallback, title, buttonLabels)
}

我期望的输出是在我的相机拍照后弹出对话框。我得到的输出是没有弹出对话框。

如果需要 HTML 代码,请告诉我,我会更新问题。

标签: javascriptandroidcordovacordova-plugins

解决方案


当设备再次处于前台时,您需要等待设备准备好。

document.addEventListener('deviceready', function() {
  navigator.notification.confirm(message, confirmCallback, title, buttonLabels);
}, false);

如果上述方法不起作用,我会检查您的控制台是否有任何错误。


推荐阅读