¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como evitar que o teclado virtual apareça ao definir o foco em um campo de entrada em um aplicativo da web de digitalização SAPUI5

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 8 Vistas
0
Cargando...

Tenho um aplicativo web de digitalização SAPUI5 que foca em um campo de entrada sempre que é clicado em qualquer parte da tela ou sai do menu. Isso garante que esteja pronto para exibir o valor digitalizado no campo de entrada.

O problema é que quando o foco é definido no campo de entrada, o teclado virtual aparece. Eu só quero que o teclado virtual seja exibido quando o usuário clicar especificamente no campo de entrada.

Minha solução atual é desabilitar a entrada, focar nela e então habilitar o campo de entrada:

scannedInput.setEditable(false);
scannedInput.setEditable(false);scannedInput.setEditable(false);scannedInput.focus();
setTimeout(function(){
    scannedInput.setEditable(true);},50);

O problema com esta solução é que a tela pisca quando isso acontece, pois o teclado aparece e desaparece.

Alguém conhece uma solução melhor?

Obrigado

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Olá Emil,

Tentei isso e não piscou e parece que funciona:

em Vista:

<Input xmlns="sap.m" id="input1" editable="false"/>

em controlador:

jQuery.sap.delayedCall(100, this, function () {

this.byId("input1").setEditable(true);

this.byId("input1").focus(); });

Por favor, verifique se se ajusta ao seu cenário.

Rakesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Esta é agora uma pergunta antiga, mas estou postando minha solução no caso de ajudar alguém.

Defini um controle personalizado que é uma extensão do padrão sap.m.Input, onde adiciono uma propriedade para o inputmode, que então é adicionada como um atributo durante a renderização do controle:

sap.ui.define(    ['sap/m/Input'],    function (Input) {        return Input.extend("co.example.control.Input", {            metadata: {                properties: {                  'inputmode': {type: 'string', defaultValue: 'none'}                }            },            renderer: {                writeInnerAttributes: function (oRm, oInput) {                    sap.m.InputRenderer.writeInnerAttributes.apply(this, arguments);                    oRm.attr('inputmode', oInput.getInputmode())                }            }        })    })

Aqui está um exemplo de implementação:

<ei:ExtendedInput inputmode="none"                  change="onBarcodeScan"                  value="{/ScannedBarcode}"/>

Claro, você pode usar um link de modelo se precisar que o valor seja dinâmico, o que eu tive que fazer, como explico em minha resposta um pouco mais detalhada aqui .

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

É um telefone celular com um scanner integrado e sistema operacional Android.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Olá!

Que tipo de dispositivo você está usando?

É móvel, computador portátil ou outro?

Rakesh

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?