【发布时间】:2016-02-11 15:29:46
【问题描述】:
我在 JavaScript 中有一个方法,如下所示:
function onAction() {
getValue1();
getValue2();
getValue3();
}
当我调用 onAction() 时,我看到 Mobile Safari 和 Android Chrome 之间有两种不同的行为。在 Safari 中,我获得了所有三种方法的值。在 Android Chrome 上,我只得到最后一个方法的值。哪个是最后一个并不重要。我怀疑这可能是执行时间问题并尝试了以下操作:
function onAction() {
new Promise(function(resolve,reject) {
resolve(1);
})
.then(function() {
getValue1();
})
.then(function() {
getValue2();
})
.then(function() {
getValue3();
});
}
同样,它在 Mobile Safari 中运行良好,但在 Android Chrome 中却不行。
我确定我遗漏了一些明显的东西,但它让我望而却步。如果重要,getValue* 函数用于通过每个平台的 Native Code->JavaScript 桥接机制获取值。
感谢任何帮助。如果我能提供更多信息,请告诉我。
问候,
抢
**附加信息**getValueX 函数不返回任何值。它们触发将值推送到本机包装器:
function getReaderSDKVersion() {
var message = {'action' : MPDataEnum.SDKVersion};
raiseMessage(message);
}
function raiseMessage(message) {
if (isPlatformiOS()) {
window.webkit.messageHandlers.interOp.postMessage(message);
} else {
var url = "mpcard://runMethod#" + JSON.stringify(message);
window.location.href = url;
}
}
【问题讨论】:
-
我们必须知道
getValueX的内部是什么样子。 -
我们必须知道
getValueX的内部是什么样子。
标签: javascript android html mobile safari