Monaca.getDeviceId() 无法设置为变量

Monaca.getDeviceId() not able to set to variable

我尝试了多种方法将设备 ID 设置为一个变量一次,这样它就可以在其他函数中使用而无需 monaca 回调。此代码不起作用:

function getDevID(){
    monaca.getDeviceId(function(id){
        return id;
    });
}

这也不行:

var devid = monaca.getDeviceId(function(id){return id;});

基本上,我如何将设备 ID 设置为变量以便在我的应用程序中重复使用?

更新:根据可能重复异步调用的评论,我回去分析了一下,发现它是正确的。虽然在技术上不是重复的 post,但答案就在 post 关于异步工作流的内容中。我的问题的解决方案可以这样解决:

var devid = '';

document.addEventListener ("deviceready", onDeviceReady, false);
function onDeviceReady() {
   monaca.getDeviceId(function(id){
      devid = id;
   });           
} 

然后我可以在任何需要的地方使用 devid post 加载。

使用 deviceready 事件侦听器,就像您所做的那样,无疑是最好的方法,请记住在完成后删除事件侦听器。不过,如果您正在使用 Onsen UI,您也可以使用 ons.ready(),它会等待 DOM 被初始化。它可能会在 deviceready 后几毫秒被触发,但会为您节省一些代码并得到相同的结果。