Геолокация Appcelerator не работает на Android

#javascript #android #geolocation #titanium

#javascript #Android #геолокация #titanium

Вопрос:

Следующий код из примера Titanium отлично работает на iPhone, но не на Android. Может кто-нибудь показать мне, как это можно написать, чтобы это работало и на Android 2.3.3? Ошибка не отображается, если я закомментирую ‘Ti.Geolocation.getCurrentPosition’ и это конечный тег.

 if (!_bounty.captured) {
    var captureButton = Ti.UI.createButton({
        title:L('capture'),
        top:10,
        height:30,
        width:200
    });
    captureButton.addEventListener('click', function() {
        if (Ti.Geolocation.locationServicesEnabled) {
            Ti.Geolocation.accuracy = Ti.Geolocation.ACCURACY_BEST;
            Ti.Geolocation.getCurrentPosition(function(e) {  //*causes error on Android*
                var lng = e.coords.longitude;
                var lat = e.coords.latitude;
                bh.db.bust(_bounty.id, lat, lng);

                bh.net.bustFugitive(Ti.Platform.id, function(_data) {
                    Ti.UI.createAlertDialog({
                        message:_data.message
                    }).show();

                    //on android, give a bit of a delay before closing the window...
                    if (Ti.Platform.osname == 'android') {
                        setTimeout(function() {
                            win.close();
                        },2000);
                    }
                    else {
                        win.close();
                    }
                });
            });
        }
        else {
            Ti.UI.createAlertDialog({
                title:L('geo_error'), 
                message:L('geo_error_details')
            }).show();
        }
    });
    win.add(captureButton);
}
  

Любая помощь приветствуется.

Комментарии:

1. Что это за сообщение об ошибке? Какая версия Ti?

2. Версия Ti 1.7.5, ошибка во время выполнения: Местоположение: android_asset/Resources/ui.js ; Сообщение: Слишком глубокая рекурсия при синтаксическом анализе

3. Звучит как ошибка Ti для Android. Вы пробовали использовать более раннюю версию Ti Mobile SDK, чтобы проверить, работает ли это?

4. Образец, который я скачал с GitHub, работает, но когда я собираю и пытаюсь воссоздать образец, он не работает на Android. В настоящее время я пытаюсь проверить различия в файлах и папках.

Ответ №1:

Вы должны использовать Google API SDK для использования геолокации на Android