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

时间:2016-01-24 21:13:40

标签: javascript onsen-ui monaca

我尝试了多种将设备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。

1 个答案:

答案 0 :(得分:1)

使用deviceready事件监听器,确实是最好的方法,只需记住在完成后删除事件监听器。不过,如果您使用Onsen UI,还可以使用ons.ready(),等待DOM初始化。它可能会在deviceready之后几毫秒被触发,但会保存一些代码并且会产生相同的结果。