键盘未在元素焦点的Android和BlackBerry中显示

时间:2015-03-02 10:28:20

标签: javascript android ios blackberry ibm-mobilefirst

在启动应用程序时,我需要键盘出现在屏幕上。

我可以在iOS中完成此操作,我将焦点设置在文本字段上,键盘出现。但是在Android和BlackBerry中,即使文本字段聚焦,键盘也不会显示。

我已使用以下代码设置焦点:

setTimeout(function(){
    document.getElementById("mglTxtEmailAddr").focus();
}, 200);

1 个答案:

答案 0 :(得分:3)

<强>的Android 假设您使用的是Worklight 6.2或更高版本,则可以使用以下代码代码来显示Android的焦点键盘。

<强>使用Javascript:

document.getElementById('mglTxtEmailAddr').addEventListener('focus', function(){
  WL.App.sendActionToNative('showKeyboard',{});
});


setTimeout(function(){
    document.getElementById("mglTxtEmailAddr").focus();
}, 200);

在Worklight Studio生成的活动类中,在onCreate函数的末尾添加以下操作接收器。

<强> YourActivity.java:

WL.getInstance().addActionReceiver(new WLActionReceiver(){
  @Override
  public void onActionReceived(String action, JSONObject arg1) {
    if("showKeyboard".equals(action)) {
      InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
        if (inputMethodManager != null) {
            inputMethodManager.toggleSoftInput(InputMethodManager.SHOW_FORCED, 0);
        }
    }
  }
});

<强>的iOS

对于AppDelegate类中的iOS,在wlInitDidCompleteSuccessfully内添加以下代码:

[cordovaViewController.webView setKeyboardDisplayRequiresUserAction:NO];