android - 使 cordova.exec 同步

标签 android jquery cordova phonegap-plugins

在使用 phonegap 的 android 中,即 cordova2.9,我正在寻找一种使此调用同步的方法:

for(var i=0;i<5;i++){
cordova.exec(onSuccess, fail, "PluginName", "echo",["arg1","arg2"]); 
}

我注意到函数 onSuccess 在循环的最后被触发,即在 i 等于 5 之后

最佳答案

Cordova 是异步的。

如果它使用同步调用,UI 将在循环执行期间卡住。

要实现您正在尝试做的事情,您应该在 onSuccess 和 fail 回调中增加并测试 i 的值。

也许这样的事情会起作用(没有太多时间来测试它/真正考虑它):

var execute=function(val,max){
    if(val<max){
        cordova.exec(function(){
            onSuccess();
            execute(val+1,max);
        }, function(){
            fail();
            execute(val+1,max);
        },
        "PluginName", "echo",["arg1","arg2"]); 
    }
}
execute(0,5);

关于android - 使 cordova.exec 同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24993888/

相关文章:

java - Android:位置更新在后台一段时间后(20-30 分钟)停止

javascript - 从数据表选定行中获取最低和最高日期值

jquery - 如何使用 jQuery 找出哪个表行被单击?

typescript - 如何在 ionic2 上传前获取文件名和 mime 类型?

javascript - Cordova (PhoneGap) 在 jQuery Mobile 应用程序的每个页面上重新初始化

android - 在 Android 4.1 到 5.0 的 Cordova 应用程序上启用 TLS 1.2

android - 任务 ':app:kaptDebugKotlin' 执行失败。清理构建时

java - Android OpenGLES 在 GLThread 中加载纹理然后告诉 UI 线程运行一个方法

Android - 使用 ORMLite DAO 作为 ContentProvider

javascript - 想要使用提交处理程序