Cordova Keyboard + focus

Hey guys I got a problem with the keyboard and focus behavior. I am developing a hybrid app with angular, ionic, cordova

Currently when the user enters a view automaticly the first inputfield of the form will be focused, this is a requirement, since the user should be able to use physical device scanner to scan barcodes, therefor the focus is needed. My problem is with the focus the Keyboard is showing, I want to prevent that. I have already used $timeout and cordova.plugins.Keyboard.close(), but the keyboard is showing and hiding for a short period sometimes.I also tried listening vor native.keyboardshow from the plugin, but i wasnt able to cancle the event before the keyboard is showing.

window.addEventListener('native.keyboardshow', keyboardShowHandler);

    function keyboardShowHandler(e) {
        console.log(e)
    }

The Goal would be:

1)On entering the view the first input is focused and the keyboard doesnt show

2)When the user taps in the field the keyboard shows

3)When he taps elsewhere to dismiss the keyboard it hides and the focus is still active in the field

4)When he enters a value in the field and presses enter he jumps to the next or if last field submits the form.

5)When he taps into a field and there is already a value the whole value is selected so he can delete all with 1 click

I have created a focus direktive for all my inputs which is working good, expect the autofocus without keyboard part.

.directive('focus', function ($timeout, Ls) {

return {
    restrict: 'A',
    link: function (scope, element, attrs) {

        element.on('click', function () {
            // only select the whole input field if it is not a url input field
            if (!(attrs.type == 'url' || attrs.type == 'number')) {
                if (Ls.Get('persist_devicePlatform') == 'Android') {
                    this.select();
                    cordova.plugins.Keyboard.show();
                } else {
                    this.setSelectionRange(0, 9999);
                }
            }
        })

        element.bind('keydown', function (e, inputs) {
            var inputs = document.querySelectorAll('input[type="text"],input[type="password"],input[type="number"], input[type="url"], button.btnRight');
            var code = e.keyCode || e.which;
            var val = element[0].value;
            var requiredInputs = [];


            angular.forEach(inputs, function (value, index) {

                if (value.required == true || value.localName == 'button') {
                    requiredInputs.push(value);
                }
            });

            var current = document.activeElement;


            if (code === 13 && val != '' && val != undefined) {
                console.log(requiredInputs);
                e.preventDefault();
                var i = 0;

                while (i < requiredInputs.length) {
                    if (requiredInputs[i] == current) {
                        var nextInput = requiredInputs[i + 1];
                        if (i == requiredInputs.length - 2) {
                            // sends the form
                            nextInput.click();
                            cordova.plugins.Keyboard.close();
                        } else {
                            //focuses next input
                            nextInput.focus();
                            i = requiredInputs.length;
                        }
                    }
                    i++;
                }
            }
        });

         //sets the input field with id first to focus and opens the keyboard
        $timeout(function () {
            element[0].focus();
        }, 50);
// Here I currently close the Keyboard directly after opening
// But I would like to not even let it show at all
        $timeout(function () {
            cordova.plugins.Keyboard.close();
        }, 60);

        var inputs = document.querySelectorAll('input[type="text"],input[type="password"],input[type="number"], input[type="url"]');
        var arrInputs = [];

        angular.forEach(inputs, function (value, index) {
            arrInputs.push(value);
        });

        // if android then focus the input field without showing the keyboard - this is not working on ios so it is no focus on it
            if (Ls.Get('persist_devicePlatform') == 'Android') {                        

            element.bind('focusout', function (e) {
                        if (element[0].value === '') {
                            this.focus();
                            $timeout(function () {
                                cordova.plugins.Keyboard.close();
                            }, 60);                             
                        }
                    });
            }               
    }

}

})

This is how a form would look like in my app

<form novalidate class="formWE10" name="FormWE10">
        <h4>{{lang.lblBestellungML}}</h4>
        <div class="list list-inset-p">
            <div class="item item-input">
                <span class="input-label">{{lang.lblBestellNrLangML}}</span>
                <input type="text" name="bestellnummer" id="First" ng-model="we.bestellnummer" required focus />
                <barcode-scan ng-if="devPlatform == 'iOS' || (devPlatform =='Android' && devVersion >= '4.4.2')" scancode="we.bestellnummer"></barcode-scan>
            </div>
            <div class="item item-input" ng-if="featureAktivierung.WE001 != true">
                <span class="input-label">{{lang.lblLieferDatumML}}</span>
                <input type="text" ng-model="we.deliveryDate" maxlength="6" ng-maxlength="6" ng-minlength="6" placeholder="DDMMYY" numbers-only ng-required="featureAktivierung.WE001 == false" focus />
            </div>
            <div class="item item-input" ng-if="featureAktivierung.WE002 != true">
                <span class="input-label">{{lang.lblLieferscheinNrML}}</span>
                <input type="text" ng-model="we.deliveryNumber" ng-required="featureAktivierung.WE002 == false" focus />
            </div>
        </div>

    </form>

So basicly I need to cancle the nativ Keyboard show when the first input is focused when entering the view.

Regards, Christopher