When using external Bluetooth keyboards with iOS 8 devices certain keys may not work. Keys with issues include shift, caps lock, arrow keys and control key. Either the browser or iO8 is not correctly reporting keystrokes when they are sent from the external keyboard. As a workaround, the webRDP application (virtual) keyboard works with these keys should they need to be used.
A closer look at the arrow keys in iOS 6 shows the correct output but not in iOS 8. Either something changed in iOS or in Safari. Either way, the arrow key information being supplied to webRDP is incomplete.
In iOS 6, the 'up' arrow key gives the following output:
keyup keyCode=0 which=0 charCode=0
shiftKey=false ctrlKey=false altKey=false metaKey=false
key=undefined char=undefined location=undefined repeat=undefined
keyIdentifier=U+001E keyLocation=0
Notice it only triggers a keyUp event and does not have a valid keyCode value. It does, however, have a key identifier value. While the event info is not complete, having the keyIdentifier is enough to uniquely identify what key was pressed and we can map the keyIdentifier to the appropriate keyCode.
In iOS 8, the 'up' arrow key gives the following output:
keyup keyCode=0 which=0 charCode=0
shiftKey=false ctrlKey=false altKey=false metaKey=false
key=undefined char=undefined location=0 repeat=undefined
keyIdentifier=Unidentified keyLocation=0
Notice that the keyIdentifier is now 'Unidentified'. Regardless of the arrow key pressed, this same event info is reported so there is no way for webRDP to know what key was pressed.