Monaca.getDeviceId() не может установить переменную
Я пробовал несколько способов установки идентификатора устройства для переменной один раз, чтобы его можно было использовать в других функциях, не требуя обратного вызова monaca. Этот код не работает:
function getDevID(){
monaca.getDeviceId(function(id){
return id;
});
}
И при этом это:
var devid = monaca.getDeviceId(function(id){return id;});
В общем, как я могу установить идентификатор устройства в переменную для повторного использования в моем приложении?
Обновление: основываясь на комментариях о возможных дубликатах асинхронных вызовов, я вернулся и проанализировал это и обнаружил, что это правильно. Хотя технически это не повторяющийся пост, в нем есть ответ об асинхронном рабочем процессе. Решение моей проблемы может быть решено следующим образом:
var devid = '';
document.addEventListener ("deviceready", onDeviceReady, false);
function onDeviceReady() {
monaca.getDeviceId(function(id){
devid = id;
});
}
Затем я могу использовать Devid в любом месте после загрузки.
1 ответ
С помощью deviceready
прослушиватель событий, как и вы, наверняка является лучшим подходом, просто не забудьте удалить прослушиватель событий, когда закончите. Тем не менее, если вы используете Onsen UI, вы также можете использовать ons.ready()
, который ожидает инициализации DOM. Вероятно, через пару мс deviceready
, но сэкономит вам некоторый код и будет иметь тот же результат.