iOS usa UIKeyboardTypeDecimalPad en la input del formulario UIWebView

Quiero mostrar el pad decimal con un '.' en la esquina izquierda utilizada por las aplicaciones nativas en una aplicación basada en Córdova.

introduzca la descripción de la imagen aquí

He visto muchos subprocesss utilizando API privadas, etc. pero quiero una solución que vaya para la presentación de la tienda de aplicaciones. Cualquier ayuda es apreciada.

Ya he probado algo de este hilo.

A continuación se muestra mi modificación,

@protocol TSPingPong <NSObject> - (void) ts_pong: (id) sender; @end @interface NSObject (TSPingPong) @end @implementation NSObject (TSPingPong) - (void) ts_ping: (id) sender { if ( [sender respondsToSelector: @selector(ts_pong:)] ) { [sender performSelector: @selector( ts_pong: ) withObject: self ]; } } @end @interface ViewController () @property (weak, nonatomic) IBOutlet UIWebView *webView; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(keyboardWillAppear:) name: UIKeyboardWillShowNotification object: nil]; NSString* html = @"<br><br><br><form action=''> " \ "First name: <input type='text'><br> " \ "Last name: <input type='text'><br>" \ "<input type='submit' value='Submit'> " \ "</form>"; [_webView loadHTMLString: html baseURL: nil]; } - (void) keyboardWillAppear: (NSNotification*) n { // the keyboard is about to appear! // play pingpong with the first responder so we can ensure it has a keyboardAppearance method: [[UIApplication shanetworkingApplication] sendAction: @selector( ts_ping:) // added via category extension to: nil // to: the first responder from: self // "sender" forEvent: nil]; } - (void) ts_pong: (id) sender { // sender is the first responder. Happens to be undocumented "UIWebBrowserView" in this case. // if it doesn't have it's own keyboardAppearance method then let's add one: if ( ![sender respondsToSelector: @selector(keyboardAppearance)] ) { Method m = class_getInstanceMethod( [self class], @selector( keyboardAppearanceTemplateMethod ) ); IMP imp = method_getImplementation( m ); const char* typeEncoding = method_getTypeEncoding( m ); class_addMethod( [sender class], @selector(keyboardAppearance), imp, typeEncoding ); } if ( ![sender respondsToSelector: @selector(keyboardType)] ) { Method m1 = class_getInstanceMethod( [self class], @selector( keyboardTypeTemplateMethod ) ); IMP imp1= method_getImplementation( m1 ); const char* typeEncoding1 = method_getTypeEncoding( m1 ); class_addMethod( [sender class], @selector(keyboardType), imp1, typeEncoding1 ); } } - (UIKeyboardAppearance) keyboardAppearanceTemplateMethod { return UIKeyboardAppearanceDark; } - (UIKeyboardType)keyboardTypeTemplateMethod { return UIKeyboardTypeDecimalPad; } 

Soy capaz de hacer que el aspecto del keyboard sea oscuro pero no del tipo de keyboard que deseo.

Otros hilos y respuestas que he visto hasta ahora, pero sin resultados,

¿Cómo aparece el keyboard pnetworkingeterminado cuando el usuario accede a UIWebView?

https://www.aerych.com/blog/2012/04/29/uiwebviews-uikeyboards-and-uitoolbars-oh-my/

Cómo configurar un keyboard personalizado para UIWebView

Agregue el button personalizado UIB a la vista de accesorios de UIKeyboard para una UIWebView

https://github.com/dcorbatta/CKWebView

Prueba esto en tu cadena html

 <input type="tel"></input> 

o

 <input type="text" pattern="[0-9]*"></input> 

Hay un nuevo complemento para esto:
https://github.com/mnill/cordova-custom-keyboard