Skip to content
keyboard.js 2.09 KiB
Newer Older
wangqinghua's avatar
wangqinghua committed
var argscheck = require('cordova/argscheck'),
    utils = require('cordova/utils'),
    exec = require('cordova/exec'),
    channel = require('cordova/channel');


var Keyboard = function () {};

Keyboard.fireOnShow = function (height) {
    Keyboard.isVisible = true;
    cordova.fireWindowEvent('keyboardDidShow', {
        'keyboardHeight': height
    });
wangqinghua's avatar
wangqinghua committed

    // To support the keyboardAttach directive listening events
    // inside Ionic's main bundle
    cordova.fireWindowEvent('native.keyboardshow', {
        'keyboardHeight': height
    });
wangqinghua's avatar
wangqinghua committed
};

Keyboard.fireOnHide = function () {
    Keyboard.isVisible = false;
    cordova.fireWindowEvent('keyboardDidHide');
wangqinghua's avatar
wangqinghua committed

    // To support the keyboardAttach directive listening events
    // inside Ionic's main bundle
    cordova.fireWindowEvent('native.keyboardhide');
wangqinghua's avatar
wangqinghua committed
};

Keyboard.fireOnHiding = function () {
    cordova.fireWindowEvent('keyboardWillHide');
};

Keyboard.fireOnShowing = function (height) {
    cordova.fireWindowEvent('keyboardWillShow', {
        'keyboardHeight': height
    });
};

wangqinghua's avatar
wangqinghua committed
Keyboard.hideFormAccessoryBar = Keyboard.hideKeyboardAccessoryBar = function (hide) {
wangqinghua's avatar
wangqinghua committed
    exec(null, null, "Keyboard", "hideKeyboardAccessoryBar", [hide]);
};

wangqinghua's avatar
wangqinghua committed
Keyboard.hide = function () {
    exec(null, null, "Keyboard", "hide", []);
wangqinghua's avatar
wangqinghua committed
};

Keyboard.show = function () {
    exec(null, null, "Keyboard", "show", []);
};

Keyboard.disableScroll = function (disable) {
    console.warn("Keyboard.disableScroll() was removed");
};

wangqinghua's avatar
wangqinghua committed
Keyboard.setResizeMode = function (mode) {
    console.warn("Keyboard.setResizeMode() not supported in Android");
}

wangqinghua's avatar
wangqinghua committed
channel.onCordovaReady.subscribe(function () {
    exec(success, null, 'Keyboard', 'init', []);

    function success(msg) {
        var action = msg.charAt(0);
        if (action === 'S') {
            var keyboardHeight = parseInt(msg.substr(1));
            Keyboard.fireOnShowing(keyboardHeight);
            Keyboard.fireOnShow(keyboardHeight);

        } else if (action === 'H') {
            Keyboard.fireOnHiding();
            Keyboard.fireOnHide();
        }
    }
});


Keyboard.isVisible = false;

wangqinghua's avatar
wangqinghua committed
module.exports = Keyboard;