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

标签 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。

最佳答案

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

关于javascript - Monaca.getDeviceId() 无法设置为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34981540/

相关文章:

javascript - 如何使用 jquery 在两个元素之间切换类?

javascript - 在 for 循环中更新 <div>

ios - 向左滑动返回

javascript - onclick事件jquery + angular触发click事件3次

node.js - 引用错误: Promise is not defined OnsenUI

javascript - 我应该如何更新 Service Worker 和缓存的 PWA 文件

javascript - 回顾 javascript 正则表达式

onsen-ui - Onsen Ui 对话框全屏

ios - Monaca 推送通知后端管理 API 不工作

ios - 从 iTunes 安装 ipa 文件