Esta es ahora una pregunta antigua, pero estoy publicando mi solución en caso de que ayude a alguien.
Definí un control personalizado que es una extensión del estándar sap.m.Input, donde agrego una propiedad para el inputmode, que luego se agrega como un atributo durante la renderización del control:
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()) } } }) })
Aquí hay un ejemplo de implementación:
<ei:ExtendedInput inputmode="none" change="onBarcodeScan" value="{/ScannedBarcode}"/>
Por supuesto, puedes usar un enlace de modelo si necesitas que el valor sea dinámico, lo cual tuve que hacer, como explico en mi
respuesta un poco más detallada aquí
.