带有setinterval的cordova executioncript导致键盘出现并在inappbrowser中消失

时间:2015-06-23 07:10:18

标签: javascript android jquery cordova

我使用insertcss和execucript

为打开的网站创建了一个自定义标题

由于我必须从cordova插件中调用函数,并且他们不能在executecript的文件中工作,我在执行脚本的回调函数中调用它们。 我把setinterval不断检查值[0]。根据价值,它将执行不同的功能..

我的代码在Galaxy Note 10.1和iOS中运行良好但是当我们在Samsung Duos和Samsung Mega中尝试时,键盘会保持blinkig(我注意到这些手机的键盘看起来不同)。当我试图删除executioncript代码时,当我专注于输入字段时,键盘就会停留。

这是我的代码:

 ref.addEventListener('loadstop', function(event)
                {


                    ref.insertCSS({  file: "http://viveg.net/inappbrowserfiles/custom.css" },function(){ /*alert('css inserted');*/});

                    ref.executeScript({ file: "http://viveg.net/inappbrowserfiles/custom.js"}, 

                                      function(values){

                                                    clearInterval(bTimerId);

                                                    bTimerId = setInterval(
                                                   function(values)
                                                    {
                                                         scancounter = 0;
                                                         locationcounter = 0;
                                                         closecounter = 0;
                                                        focusedcounter  = 0;
                                                         focusedoutcounter =  0;

                                                        ref.executeScript(
                                                        { code:'getSomething()' },
                                                            function(values){
                                                            var data = values[0];
                                                                //alert(data.func);
                                                                if(data.func == 'close')
                                                                {
                                                                   if(closecounter == 0)
                                                                   {
                                                                       closecounter += 1;
                                                                       ref.close();
                                                                       askExit();
                                                                       clearInterval(bTimerId);
                                                                   }
                                                                }
                                                                else if(data.func == 'scan')
                                                                {
                                                                   if(scancounter == 0)
                                                                   {
                                                                       scancounter += 1;
                                                                       ref.close();
                                                                       $('.content-cont').html('<img src="img/loading.gif" style="margin:15% auto; width:25%; display:block;"/>'); 
                                                                       clearInterval(bTimerId);

                                                                         setTimeout(function()
                                                                        {
                                                                         scanner.startScanning(MWBSInitSpace.init,MWBSInitSpace.callback);
                                                                        }, 2250);

                                                                   }
                                                                }
                                                                else if(data.func == 'location')
                                                                {
                                                                   if(locationcounter == 0)
                                                                   {
                                                                       locationcounter += 1;
                                                                       ref.close();
                                                                       $('.content-cont').empty();
                                                                       clearInterval(bTimerId);
                                                                       chooseurl();
                                                                   }
                                                                }
                                                                else if(data.func == 'focused')
                                                                {
                                                                   if(focusedcounter == 0)
                                                                   {
                                                                    focusedcounter += 1;
                                                                    //clearInterval(bTimerId);
                                                                    cordova.plugins.Keyboard.show();

                                                                   }
                                                                }
                                                                else if(data.func == 'focusedout')
                                                                {
                                                                   if(focusedoutcounter == 0)
                                                                   {
                                                                    focusedoutcounter += 1;

                                                                   }
                                                                }



                                                        });
                                                    }
                                                   , 2000);                                                   

                    });


                });

有谁知道怎么让键盘留下来?或者知道在inappbrowser和没有错误的应用程序之间进行通信的另一种方式是什么?

1 个答案:

答案 0 :(得分:0)

我现在明白了。在我的custom.js文件中,我更改了

 <button></button>

 <a href=""></a>

并使用了一个带有

等参数的网址

http://example.com/?valll=closehttp://example.com/?valll=scan

在科尔多瓦方面。在loadstart的回调中,我只是调用了一个函数来获取&#39; valll&#39;的值。并且取决于valll的值(&#39; close&#39;或&#39; scan&#39;),它将执行ref.close(); 或者调用条形码扫描仪功能:p