Added support for native iOS and Android keyboards.

Tested with Safari on iPad for iOS and Asus Transformer for Android.
This commit is contained in:
Chris Gordon 2011-08-23 10:26:04 +10:00 committed by Joel Martin
parent 46c621175c
commit 7825b9ee9f
3 changed files with 43 additions and 3 deletions

View File

@ -64,6 +64,7 @@ load: function(target) {
html += ' id="VNC_mouse_button2" value="M" onclick="UI.setMouseButton(2);"';
html += ' ><input type="button" class="VNC_status_button"';
html += ' id="VNC_mouse_button4" value="R" onclick="UI.setMouseButton(4);">';
html += ' <input type="button" id="showKeyboard" onclick="showkeyboard()" value="Keyboard" />';
html += ' </span></nobr></div></td>';
// Settings drop-down menu
@ -122,6 +123,7 @@ load: function(target) {
html += ' <canvas id="VNC_canvas" width="640px" height="20px">';
html += ' Canvas not supported.';
html += ' </canvas>';
html += '<input id="keyboardinput" style="border:none;" type="text" onKeyDown="onKeyDown(event);"/>';
html += '</div>';
html += '<br><br>';
html += '<div id="VNC_clipboard">';
@ -472,3 +474,40 @@ clipSend: function() {
}
};
/*
Functions for use of mobile devices native keyboards
Added by Chris Gordon
http://www.chrisgordon.com.au
Date: 23/08/2011
*/
function showkeyboard(){
//Get Current Scroll Position of Browser
var scrollx = (document.all)?document.body.scrollLeft:window.pageXOffset;
var scrolly = (document.all)?document.body.scrollTop:window.pageYOffset;
//Stop browser zooming on textbox when focus is set.
zoomDisable();
//Focus on hidden textbox to bring up native keyboard.
document.getElementById('keyboardinput').focus();
//Set scroll position of browser to the same position it was prior to focus.
scroll(scrollx,scrolly);
//Renable user zooming.
zoomEnable();
}
function zoomDisable(){
//Change viewport meta data to disable zooming.
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="user-scalable=0" />');
}
function zoomEnable(){
//Change viewport meta data to enable user zooming.
$('head meta[name=viewport]').remove();
$('head').prepend('<meta name="viewport" content="user-scalable=1" />');
}

View File

@ -10,15 +10,16 @@
<meta http-equiv="X-UA-Compatible" content="chrome=1">
<link rel="stylesheet" href="include/plain.css">
<link rel="alternate stylesheet" href="include/black.css" TITLE="Black">
<!--
<script type='text/javascript'
<script type='text/javascript'
src='http://getfirebug.com/releases/lite/1.2/firebug-lite-compressed.js'></script>
-->
<script src="include/vnc.js"></script>
<script src="include/ui.js"></script>
</head>
<body>
<body onKeyDown="onKeyDown(event);">
<div id='vnc'>Loading</div>
<script>

View File

@ -19,7 +19,7 @@
<script src="include/vnc.js"></script>
</head>
<body style="margin: 0px;">
<body style="margin: 0px;" onKeyDown="onKeyDown(event);">
<div id="VNC_screen">
<div id="VNC_status_bar" class="VNC_status_bar" style="margin-top: 0px;">
<table border=0 width="100%"><tr>