summaryrefslogtreecommitdiff
path: root/StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js')
-rw-r--r--StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js b/StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js
new file mode 100644
index 00000000..2ce74e9f
--- /dev/null
+++ b/StoneIsland/plugins/ionic-plugin-keyboard/src/windows/KeyboardProxy.js
@@ -0,0 +1,37 @@
+
+/*global Windows, WinJS, cordova, module, require*/
+
+var inputPane = Windows.UI.ViewManagement.InputPane.getForCurrentView();
+var keyboardScrollDisabled = false;
+
+inputPane.addEventListener('hiding', function() {
+ cordova.fireWindowEvent('native.keyboardhide');
+ cordova.plugins.Keyboard.isVisible = false;
+});
+
+inputPane.addEventListener('showing', function(e) {
+ if (keyboardScrollDisabled) {
+ // this disables automatic scrolling of view contents to show focused control
+ e.ensuredFocusedElementInView = true;
+ }
+ cordova.fireWindowEvent('native.keyboardshow', { keyboardHeight: e.occludedRect.height });
+ cordova.plugins.Keyboard.isVisible = true;
+});
+
+module.exports.disableScroll = function (disable) {
+ keyboardScrollDisabled = disable;
+};
+
+module.exports.show = function () {
+ if (typeof inputPane.tryShow === 'function') {
+ inputPane.tryShow();
+ }
+};
+
+module.exports.close = function () {
+ if (typeof inputPane.tryShow === 'function') {
+ inputPane.tryHide();
+ }
+};
+
+require("cordova/exec/proxy").add("Keyboard", module.exports);