Cordova-dialogs-plugin не отображается при запуске кода на эмуляторе - PullRequest
0 голосов
/ 22 апреля 2019

Я делаю приложение, и часть его требует всплывающего диалогового окна после того, как моя камера сделала снимок. Чтобы быть более конкретным, это диалог подтверждения с помощью 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-код, пожалуйста, сообщите мне, и я обновлю вопрос.

1 Ответ

0 голосов
/ 24 апреля 2019

Вам нужно подождать, пока устройство будет готово, когда оно снова появится на переднем плане.

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

Если вышеперечисленное не работает, я бы проверил вашу консоль на наличие ошибок.

...