我使用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和没有错误的应用程序之间进行通信的另一种方式是什么?
答案 0 :(得分:0)
我现在明白了。在我的custom.js文件中,我更改了
<button></button>
到
<a href=""></a>
并使用了一个带有
等参数的网址http://example.com/?valll=close或http://example.com/?valll=scan
在科尔多瓦方面。在loadstart的回调中,我只是调用了一个函数来获取&#39; valll&#39;的值。并且取决于valll的值(&#39; close&#39;或&#39; scan&#39;),它将执行ref.close(); 或者调用条形码扫描仪功能:p