我尝试了多种将设备ID设置为变量的方法,因此可以在其他函数中使用它而不需要monaca回调。此代码不起作用:
function getDevID(){
monaca.getDeviceId(function(id){
return id;
});
}
这也不是:
var devid = monaca.getDeviceId(function(id){return id;});
基本上,如何将设备ID设置为变量以便在我的应用程序中重复使用?
更新:根据对异步调用的可能重复的评论,我回去分析并发现它是正确的。虽然在技术上不是重复的帖子,但答案是关于异步工作流程的帖子。我的问题的解决方案可以通过这种方式解决:
var devid = '';
document.addEventListener ("deviceready", onDeviceReady, false);
function onDeviceReady() {
monaca.getDeviceId(function(id){
devid = id;
});
}
然后我可以在任何需要后加载的地方使用devid。
答案 0 :(得分:1)
使用deviceready
事件监听器,确实是最好的方法,只需记住在完成后删除事件监听器。不过,如果您使用Onsen UI,还可以使用ons.ready()
,等待DOM初始化。它可能会在deviceready
之后几毫秒被触发,但会保存一些代码并且会产生相同的结果。