Javascript-форум (https://javascript.ru/forum/)
-   Мобильный JavaScript (https://javascript.ru/forum/mobile/)
-   -   В этой ошибке разберется не каждый! (https://javascript.ru/forum/mobile/53090-v-ehtojj-oshibke-razberetsya-ne-kazhdyjj.html)

JМаксим 20.01.2015 17:10

В этой ошибке разберется не каждый!
 
Всем привет. Есть небольшой код для мобильного приложения под Android. Функция приложения проста, нажимаешь на кнопку "добавить фото" - срабатывает камера устройства - фотографируешь - фото появляется на стене. В строчке navigator.camera.getPicture(success, error, config); } есть ошибка. Т.к. я начинающий разраб, то не могу понять как ее исправить, когда убираю "}" в конце, то функция фотографирования срабатывает автоматом и даже фото добавляется на стену, но дальше кнопка вызова функции фотографирования не срабатывает и приложение "зависает". А с "}" приложение не работает, просто белый фон никак не реагирующий на нажатия на экран телефона. Помогите исправить ошибку плиз. Заранее премного благодарен! Вот весь код:

(function () {
document.addEventListener("deviceready", function () {
var everlive = new Everlive("main_id");
window.listview = kendo.observable({
addImage: function () {
$("#images")
.data("kendoMobileListView")
.prepend(["data:image/jpeg;base64," + data]);
}
});
var success = function (data) {
everlive.Files.create({
Filename: Math.random().toString(36).substring(2, 15) + ".jpg",
ContentType: "image/jpeg",
base64: data
}).then(loadPhotos);
};
var error = function () {
navigator.notification.alert("К сожалению, мы не смогли добавить изображение");
};
var config = {
destinationType: Camera.DestinationType.DATA_URL,
targetHeight: 400,
targetWidth: 400,
encodingType: Camera.EncodingType.PNG
};
navigator.camera.getPicture(success, error, config);
}
var app = new kendo.mobile.Application(document.body, {
skin: "flat"
});

function loadPhotos() {
everlive.Files.get().then(function (data) {
var files = [];
data.result.forEach(function (image) {
files.push(image.Uri);
});
$("#images").kendoMobileListView({
dataSource: files,
template: "<img src='#: data #'>"
});
});
}
loadPhotos(); navigator.splashscreen.hide();
});
}());

danik.js 20.01.2015 18:07

Код отформатируй, а то ничего не понятно. Или ты так и пишешь код - в блокноте, без подсветки и без отступов? :D

JМаксим 20.01.2015 18:16

а как отформатировать? я попробовал пробелами, не получается...

danik.js 20.01.2015 18:27

Кнопочка тут есть в редакторе:

JМаксим 20.01.2015 18:31

Аааа спасибо. Вот тогда как то так:

(function () {
        document.addEventListener("deviceready", function () {
                var everlive = new Everlive("main_id");
                window.listview = kendo.observable({
                    addImage: function () {
                        $("#images")
                            .data("kendoMobileListView")
                            .prepend(["data:image/jpeg;base64," + data]);
                    }
                });
                var success = function (data) {
                    everlive.Files.create({
                        Filename: Math.random().toString(36).substring(2, 15) + ".jpg",
                        ContentType: "image/jpeg",
                        base64: data
                    }).then(loadPhotos);
                };
                var error = function () {
                    navigator.notification.alert("К сожалению, мы не смогли добавить изображение");
                };
                var config = {
                    destinationType: Camera.DestinationType.DATA_URL,
                    targetHeight: 400,
                    targetWidth: 400,
                    encodingType: Camera.EncodingType.PNG
                };
                navigator.camera.getPicture(success, error, config);
            }
            var app = new kendo.mobile.Application(document.body, {
                skin: "flat"
            });

            function loadPhotos() {
                everlive.Files.get().then(function (data) {
                    var files = [];
                    data.result.forEach(function (image) {
                        files.push(image.Uri);
                    });
                    $("#images").kendoMobileListView({
                        dataSource: files,
                        template: "<img src='#: data #'>"
                    });
                });
            }
            loadPhotos(); navigator.splashscreen.hide();
        });
}());

Dark Surv 01.05.2015 19:02

я совсем не разбираюсь в мобильном JS, но мне кажется что ошибка в том что здесь 14 '}' и 13 '}', одна '}' явно тут лишняя, какая - я еще не нашел

Dark Surv 01.05.2015 19:05

нашел, на 47
}());
а нужно просто
());

это все строгое ИМХО :D

Dark Surv 01.05.2015 19:08

Ой, я не заметил дату темы
Я не думал что в "Мобильном JS" так редко задаются вопросы...


Часовой пояс GMT +3, время: 07:31.