Quantcast
Channel: Ionic Forum - Latest topics
Viewing all 70909 articles
Browse latest View live

Disable ctrl + mousewheel zoom in Ionic Windows Build

$
0
0

@iamchicken wrote:

Hi guyz, in android in disabling the ctrl+mousewheel is

<meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">

but this only support for mobile, how about in windows build, i can’t find a way to do this.
Thanks!

Posts: 1

Participants: 1

Read full topic


Apple Rejection

$
0
0

@rijink7 wrote:

I received this error when I tried for app submission: ITMS-90809: Deprecated API Usage - Apple will stop accepting submissions of apps that use UIWebView APIs . See https://developer.apple.com/documentation/uikit/uiwebview for more information.

After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to App Store Connect.

Cordova-plugin-ionic-webview - 2…4.1 is used (This plugin defaults to using WKWebView on iOS )

Posts: 1

Participants: 1

Read full topic

Formulário Ionic

$
0
0

@davsantos wrote:

Fala galera, uma dúvida.
Como posso fazer pra, em um formulário no Ionic, passar algo como uma entidade, dentro de outra entidade ?

Explicando melhor, tenho uma API com uma classe Cliente, e dentro dessa classe Cliente tem uma outra classe Endereço, guardando informações como rua, bairro, cep, etc

Eu não estou conseguindo ver uma forma de passar essa informação no Front-end.

O JSON seria algo mais ou menos assim

Exemplo :
{
“nome” : “Andre”,
“idade” : “15”,
“endereco”: [{
“rua” : “Aleatoria”,
“bairro” : “Qualquer”
}]
}

A pergunta é, como posso fazer isso no FormGroup do Ionic ?

Posts: 1

Participants: 1

Read full topic

Ionic cordova browser builds ignoring ssl options

$
0
0

@imanzal wrote:

I was trying to run my ionic cordova app using an SSL certificate.

I ran

ionic ssl generate

and the ssl key and certificate was generated.
but couldn’t use it in cordova builds. its just ignoring the --ssl thing.

the command i gave was,

ionic cordova run browser --ssl --cert-path=“path to certificate” --key-path=“path to key”

can anyone find a solution how to run browser builds on https with ssl.

Posts: 1

Participants: 1

Read full topic

IOS - Clear app secure storage after uninstalling the app

$
0
0

@sivaramakrishnan77 wrote:

IOS - not able to clear app secure storage data after uninstalling the app.
Is it possible to capture a event when the app is uninstalled?

Posts: 1

Participants: 1

Read full topic

Ionic window reload

Icon above text in ion-button

$
0
0

@fagerli93 wrote:

Hi all.

I’d like to have a ion-button with an icon and a text, but I cannot seem to get a way where I can get the icon above the text, much like a tab button.
In older versions of Ionic you could alter .inner-button { flex-direction: column } but this is no longer possible with shadow dom.

Any ideas?

Best regards,
Simon

Posts: 2

Participants: 2

Read full topic

Ionic 4 navigation stack

$
0
0

@abhissharma wrote:

Is there a way to modify the navigation stack of the application?

To be precise, if the current navigation state is
Page 1 --> Page 2 --> Page 3 --> Page 4

I want to remove Page 2 and Page 3 and modify the state to
Page 1 --> Page 4

Posts: 1

Participants: 1

Read full topic


Gulp v4: Task function must be specified

$
0
0

@mubasshir wrote:

I’m facing gulp 4 issue Task function must be specified

Node version: 12.9.1
NPM: 6.10.3
(unfortunately, I cannot degrade node)

My gulpfile.js

var gulp = require('gulp');
var sass = require('gulp-sass');
var cleanCss = require('gulp-clean-css');
var rename = require('gulp-rename');

var paths = {
  sass: ['./scss/**/*.scss']
};

gulp.task('default', ['sass']);

gulp.task('sass', function(done) {
  gulp.src('./scss/ionic.app.scss')
    .pipe(sass())
    .on('error', sass.logError)
    .pipe(gulp.dest('./www/css/'))
    .pipe(cleanCss({
      keepSpecialComments: 0
    }))
    .pipe(rename({ extname: '.min.css' }))
    .pipe(gulp.dest('./www/css/'))
    .on('end', done);
});

gulp.task('watch', ['sass'], function() {
  gulp.watch(paths.sass, ['sass']);
});

my package.json

        ...
        "gulp": "^4.0.2",
        "gulp-clean-css": "^4.2.0",
        "gulp-rename": "^1.4.0",
        "gulp-sass": "^4.0.2",
        ...

Does anyone has updated gulp.js for ionic 1 & node 12+ ?
(Meanwhile, I’m looking into the migration of gulpfile.js to v4 syntax)

Posts: 1

Participants: 1

Read full topic

Ionic v1 how to run gulp when live reloadinig

$
0
0

@cumibulat wrote:

ionic info :

Ionic CLI : 5.2.4 (C:\Users\Phincon\AppData\Roaming\npm\node_modules\ionic)
Ionic Framework : ionic1 1.3.1
@ionic/v1-toolkit : 1.0.22

Cordova:

Cordova CLI : 8.1.2 (cordova-lib@8.1.1)
Cordova Platforms : android 7.1.4
Cordova Plugins : no whitelisted plugins (6 plugins total)

Utility:

cordova-res : not installed
native-run : not installed

System:

Android SDK Tools : 26.1.1 (C:\Users\Phincon\AppData\Local\Android\Sdk)
NodeJS : v10.16.2 (C:\Program Files\nodejs\node.exe)
npm : 6.10.3
OS : Windows 10

how can i run gulp automatically when ionic serve / live reloading ?
i have add this config

“scripts”: {
“ionic:serve:before” : “gulp” ,
“ionic:build:before” : “gulp”
}

at my package.json file, and it do run gulp before finish serve. But when i change any html file and trigger the live reloading, the gulp not triggered anymore. I also tried to add :

gulp.task(‘ionic:serve:before’, gulp.series(‘default’),
function (done) {
done();
});

in my gulpfile.js but its not working too. Please throw some enlightment for anyone who ever encountered this case before. Thanks in advance…

Posts: 1

Participants: 1

Read full topic

Can I verify the device screen lock

$
0
0

@siva0409 wrote:

I want to verify the device screen lock from the app and then I want to show some personal details, I don’t want to use any API for this verification.

Is there a way to verify it. screen lock may be PIN, Pattern or Password.

Any quick suggestions may help me.
Thank you.

Posts: 1

Participants: 1

Read full topic

Mobile app designing and development

$
0
0

@InAppsTechnology wrote:

Which one is the best for a IT Company, hiring a professional web developer or outsourcing to a professional web development company?

Posts: 1

Participants: 1

Read full topic

Ionic 4 firebase fullapp : More than 300 beautifully designed app/layout template ex: Food delivery ,Travel guide, Shopping, Real estate

$
0
0

@Mayamaya2015 wrote:

Speed-up your Ionic 4 firebase app development with tons of ready-to-use firebase apps & UI layouts & UI components. This starter allows you and your team to fully focus on development of the features that set your product apart from the competitors instead of building your app from scratch.

Try demo : view
Video demo : view








Posts: 1

Participants: 1

Read full topic

I have built an ionic angular app it's getting build but once deployed in S3 getting issue

$
0
0

@krypton-01 wrote:

I have built an angular ionic app. I have build the code through ionic build --prod command and once deployed in S3 bucket I am getting an issue in console as Uncaught TypeError: Cannot read property ‘0’ of undefined main-es2015.76405d09ff6e059ed868.js:1.
I have built a web app not android app.
And not using cordova.

Posts: 1

Participants: 1

Read full topic

Insomnia not working - am I using it correctly?

$
0
0

@jamesRoss wrote:

I am creating a “Tabata” timer app, however, my phone goes to sleep after one minute, which is a huge problem, considering the app may be need for over a minute or two.

I’ve tried using the insomnia plugin, but it blocks the app on my phone. Meaning, the page where you select how long the timer goes for will be confirmed by a button press, which will then take you to the page with the timer/countdown.

The code is below, please, any help will be appreciated.

TS.

import { Component, OnInit, DebugEventListener } from ‘@angular/core’;
import { AuthService } from ‘…/services/auth.service’;
import { HttpClient } from ‘@angular/common/http’;
import { Observable } from ‘rxjs’;
import { ActivatedRoute, Router } from ‘@angular/router’;
import { Insomnia } from ‘@ionic-native/insomnia’;

@Component({
selector: ‘app-countdown’,
templateUrl: ‘./countdown.page.html’,
styleUrls: [’./countdown.page.scss’],
providers: [AuthService]
})
export class CountdownPage implements OnInit {

countdown: any;
tabata: any;
id: any;
set: any;
currentSet: any;
currentSetDiv: any;
setTest: any;
phaseEnd: any;
restTime: any;
intervalOne: any;
intervalTwo: any;
intervalThree: any;
intervalFour: any;
displayDiv: any;
m: any;
s: any;
startBtn: any;
authState$: Observable<boolean>;
secondCount: any;
secs: any;
restSecs: any;
secCounter: any;
minCounter: any;

constructor(private insomnia: Insomnia, private Auth: AuthService, public http: HttpClient, private router: Router, private route: ActivatedRoute){
}

// private insomnia: Insomnia, 

repeat() {
    // window.plugins.insomnia.keepAwake();
    this.insomnia.keepAwake();
    this.startBtn.classList.remove('green');
    this.startBtn.classList.add('grey');
    this.startBtn.innerHTML = "Prepare/Rest on orange, Workout on green";
    this.intervalOne = setInterval(() => this.begin(this.countdown, this.tabata, this.displayDiv), 1000);
    this.intervalFour = setInterval(() => this.totalTime(this.secs, this.restSecs), 1000);
}

begin(myCountdown, myTabata, myDisplay) {
    this.displayDiv = myDisplay;
    if (this.set == 1) {
        this.countdown = myCountdown - 1;
        this.countdown > 0
        if (this.countdown < 10) {
            this.countdown = "0" + this.countdown;
        }
        this.displayDiv.innerHTML = this.countdown;
        if (this.countdown == 0) {
            clearInterval(this.intervalOne);
            this.intervalTwo = setInterval(() => this.work(this.restTime, this.set), 1000)
            this.displayDiv.classList.remove('orange');
        }
    }
}

work(myRest, set) {
    this.set = set;
    this.secondCount--;
    if (this.secondCount < 10) {
        this.secondCount = "0" + this.secondCount;
    }
    this.displayDiv.innerHTML = this.secondCount;
    if (this.secondCount == 0) {
        clearInterval(this.intervalTwo);
        this.displayDiv.classList.remove('green');
        this.displayDiv.classList.add('orange');
        this.secondCount = +this.tabata.split(':')[1];
        if (this.set < 8) {
            this.intervalThree = setInterval(() => this.rest(this.displayDiv, this.restTime, this.set), 1000)
        } else {
            alert("Good work!");
            // this.insomnia.allowSleepAgain();
        }
    }
}

rest(myDisplay, myRest, set) {
    var displayDiv = myDisplay;
    this.restTime = myRest;
    this.set = set;
    this.restTime--;
    if (this.restTime < 10) {
        this.restTime = "0" + this.restTime;
    }
    displayDiv.innerHTML = this.restTime;
    if (this.restTime == 0) {
        clearInterval(this.intervalThree);
        this.displayDiv.classList.remove('orange');
        this.displayDiv.classList.add('green');
        this.secondCount = +this.tabata.split(':')[1];
        switch (this.id) {
            case this.id = "0":
                this.restTime = Math.ceil(this.secondCount * 0.5);
                break;
            case this.id = "1":
                this.restTime = Math.ceil(this.secondCount * 0.33);
                break;
            case this.id = "2":
                this.restTime = Math.ceil(this.secondCount * 0.25);
                break;
            case this.id = "3":
                this.restTime = Math.ceil(this.secondCount * 0.20);
                break;
        }
        this.set++;
        console.log("this set = ", this.set);
        this.intervalTwo = setInterval(() => this.work(this.secondCount, this.set), 1000);
        this.currentSetDiv.innerHTML = "Set " + this.set + " of 8";
    }
}

totalTime(seconds, rests) {
    var fullTime = seconds * 8 + rests * 7;
    fullTime--;
    this.secCounter++;
    if (this.secCounter < 10) {
        this.secCounter = "0" + this.secCounter;
    }
    // if (this.minCounter < 10) {
    //     this.minCounter = "00";
    // }
    if (this.secCounter == 60) {
        this.secCounter = "00";
        this.minCounter++;
    }
    if (fullTime == 0){
        clearInterval(this.intervalFour);
    }
        this.m.innerHTML = this.minCounter;
        this.s.innerHTML = this.secCounter;
        console.log(this.secCounter, this.minCounter, "test");
}

previousPage() {
    const url = window.location.href;
    let id = url.substring(url.lastIndexOf('/') + 1);
    clearInterval(this.intervalOne);
    clearInterval(this.intervalTwo);
    clearInterval(this.intervalThree);
    clearInterval(this.intervalFour);
    this.router.navigate(['/set-timer/', id]);
}

ngOnInit() {
    this.route.queryParams.subscribe(params => {
        if (this.router.getCurrentNavigation().extras.state) {
            this.countdown = this.router.getCurrentNavigation().extras.state.tabataData[0].substring(17, 19);
            this.tabata = this.router.getCurrentNavigation().extras.state.tabataData[1].substring(14, 19);
            this.id = this.router.getCurrentNavigation().extras.state.tabataData[2];
            this.set = 1;
            this.currentSet = "Set " + this.set + " of 8";
            this.startBtn = document.querySelector('#startBtn');
            this.displayDiv = document.querySelector('#counter');
            this.currentSetDiv = document.querySelector('#currentSet');
            let secondCount: any = +this.tabata.split(':')[1];
            this.secondCount = +this.tabata.split(':')[1];

            switch (this.id) {
                case this.id = "0":
                    this.restTime = Math.ceil(secondCount * 0.5);
                    break;
                case this.id = "1":
                    this.restTime = Math.ceil(secondCount * 0.33);
                    break;
                case this.id = "2":
                    this.restTime = Math.ceil(secondCount * 0.25);
                    break;
                case this.id = "3":
                    this.restTime = Math.ceil(secondCount * 0.20);
                    break;
            }
            this.secs = this.secondCount;
            this.restSecs = this.restTime;
            this.m = document.querySelector('#m');
            this.s = document.querySelector('#s');
            this.secCounter = 0;
            this.minCounter = 0;
        }
    });
}

}import { Component, OnInit, DebugEventListener } from ‘@angular/core’;
import { AuthService } from ‘…/services/auth.service’;
import { HttpClient } from ‘@angular/common/http’;
import { Observable } from ‘rxjs’;
import { ActivatedRoute, Router } from ‘@angular/router’;
// import { Insomnia } from ‘@ionic-native/insomnia’;

@Component({
selector: ‘app-countdown’,
templateUrl: ‘./countdown.page.html’,
styleUrls: [’./countdown.page.scss’],
providers: [AuthService]
})
export class CountdownPage implements OnInit {

countdown: any;
tabata: any;
id: any;
set: any;
currentSet: any;
currentSetDiv: any;
setTest: any;
phaseEnd: any;
restTime: any;
intervalOne: any;
intervalTwo: any;
intervalThree: any;
intervalFour: any;
displayDiv: any;
m: any;
s: any;
startBtn: any;
authState$: Observable<boolean>;
secondCount: any;
secs: any;
restSecs: any;
secCounter: any;
minCounter: any;

constructor(private Auth: AuthService, public http: HttpClient, private router: Router, private route: ActivatedRoute){
}

// private insomnia: Insomnia, 

repeat() {
    // window.plugins.insomnia.keepAwake();
    // this.insomnia.keepAwake();
    this.startBtn.classList.remove('green');
    this.startBtn.classList.add('grey');
    this.startBtn.innerHTML = "Prepare/Rest on orange, Workout on green";
    this.intervalOne = setInterval(() => this.begin(this.countdown, this.tabata, this.displayDiv), 1000);
    this.intervalFour = setInterval(() => this.totalTime(this.secs, this.restSecs), 1000);
}

begin(myCountdown, myTabata, myDisplay) {
    this.displayDiv = myDisplay;
    if (this.set == 1) {
        this.countdown = myCountdown - 1;
        this.countdown > 0
        if (this.countdown < 10) {
            this.countdown = "0" + this.countdown;
        }
        this.displayDiv.innerHTML = this.countdown;
        if (this.countdown == 0) {
            clearInterval(this.intervalOne);
            this.intervalTwo = setInterval(() => this.work(this.restTime, this.set), 1000)
            this.displayDiv.classList.remove('orange');
        }
    }
}

work(myRest, set) {
    this.set = set;
    this.secondCount--;
    if (this.secondCount < 10) {
        this.secondCount = "0" + this.secondCount;
    }
    this.displayDiv.innerHTML = this.secondCount;
    if (this.secondCount == 0) {
        clearInterval(this.intervalTwo);
        this.displayDiv.classList.remove('green');
        this.displayDiv.classList.add('orange');
        this.secondCount = +this.tabata.split(':')[1];
        if (this.set < 8) {
            this.intervalThree = setInterval(() => this.rest(this.displayDiv, this.restTime, this.set), 1000)
        } else {
            alert("Good work!");
            // this.insomnia.allowSleepAgain();
        }
    }
}

rest(myDisplay, myRest, set) {
    var displayDiv = myDisplay;
    this.restTime = myRest;
    this.set = set;
    this.restTime--;
    if (this.restTime < 10) {
        this.restTime = "0" + this.restTime;
    }
    displayDiv.innerHTML = this.restTime;
    if (this.restTime == 0) {
        clearInterval(this.intervalThree);
        this.displayDiv.classList.remove('orange');
        this.displayDiv.classList.add('green');
        this.secondCount = +this.tabata.split(':')[1];
        switch (this.id) {
            case this.id = "0":
                this.restTime = Math.ceil(this.secondCount * 0.5);
                break;
            case this.id = "1":
                this.restTime = Math.ceil(this.secondCount * 0.33);
                break;
            case this.id = "2":
                this.restTime = Math.ceil(this.secondCount * 0.25);
                break;
            case this.id = "3":
                this.restTime = Math.ceil(this.secondCount * 0.20);
                break;
        }
        this.set++;
        console.log("this set = ", this.set);
        this.intervalTwo = setInterval(() => this.work(this.secondCount, this.set), 1000);
        this.currentSetDiv.innerHTML = "Set " + this.set + " of 8";
    }
}

totalTime(seconds, rests) {
    var fullTime = seconds * 8 + rests * 7;
    fullTime--;
    this.secCounter++;
    if (this.secCounter < 10) {
        this.secCounter = "0" + this.secCounter;
    }
    // if (this.minCounter < 10) {
    //     this.minCounter = "00";
    // }
    if (this.secCounter == 60) {
        this.secCounter = "00";
        this.minCounter++;
    }
    if (fullTime == 0){
        clearInterval(this.intervalFour);
    }
        this.m.innerHTML = this.minCounter;
        this.s.innerHTML = this.secCounter;
        console.log(this.secCounter, this.minCounter, "test");
}

previousPage() {
    const url = window.location.href;
    let id = url.substring(url.lastIndexOf('/') + 1);
    clearInterval(this.intervalOne);
    clearInterval(this.intervalTwo);
    clearInterval(this.intervalThree);
    clearInterval(this.intervalFour);
    this.router.navigate(['/set-timer/', id]);
}

ngOnInit() {
    this.route.queryParams.subscribe(params => {
        if (this.router.getCurrentNavigation().extras.state) {
            this.countdown = this.router.getCurrentNavigation().extras.state.tabataData[0].substring(17, 19);
            this.tabata = this.router.getCurrentNavigation().extras.state.tabataData[1].substring(14, 19);
            this.id = this.router.getCurrentNavigation().extras.state.tabataData[2];
            this.set = 1;
            this.currentSet = "Set " + this.set + " of 8";
            this.startBtn = document.querySelector('#startBtn');
            this.displayDiv = document.querySelector('#counter');
            this.currentSetDiv = document.querySelector('#currentSet');
            let secondCount: any = +this.tabata.split(':')[1];
            this.secondCount = +this.tabata.split(':')[1];

            switch (this.id) {
                case this.id = "0":
                    this.restTime = Math.ceil(secondCount * 0.5);
                    break;
                case this.id = "1":
                    this.restTime = Math.ceil(secondCount * 0.33);
                    break;
                case this.id = "2":
                    this.restTime = Math.ceil(secondCount * 0.25);
                    break;
                case this.id = "3":
                    this.restTime = Math.ceil(secondCount * 0.20);
                    break;
            }
            this.secs = this.secondCount;
            this.restSecs = this.restTime;
            this.m = document.querySelector('#m');
            this.s = document.querySelector('#s');
            this.secCounter = 0;
            this.minCounter = 0;
        }
    });
}

}

I have also tried importing insomnia into the app.component.ts, but that is even worse, allowing the mobile phone to show only a blank white page (when testing on Ionic devapp).

Any help ppreciated.

Posts: 1

Participants: 1

Read full topic


Html5 audio from url stops

$
0
0

@plc wrote:

Hi,

I created a mp3 player in my Ionic application. On brower it works fine, but when I build iOS application and install it on phone something strange happens. I click play button, audio isn’t playing, I pause the player, then play it again, one second of recoring playing and stops again, I pause player again and again press play, next second is playing. So I have to pause and play over and over again.

My audio player is crated in component property:

public audioPlayer: HTMLAudioElement = new Audio();

Audio source is loaded in ngOnInit:

this.audioPlayer.src = this.path;

Play and stop buttons trigger the following actions:

    play() {
        this.audioPlayer.play();
    }

    stop() {
        this.audioPlayer.pause();
    }

I tried with element controlled by code - the same result.
Audio is loaded from server, it’s mp3 and url uses htts://.

What can I do to make it play on first “play” button click?

Posts: 1

Participants: 1

Read full topic

SCSS Variables Not Working (Ionic-v4)

$
0
0

@egag21 wrote:

I have a project that won’t let me implement variables. For example, text with this paragraph tag will not be red:

// CSS
:root {
  --text-color: red;
}

p {
  color: var(--text-color);
}

I have other projects where CSS variables work. When I copy and paste from where they’re broken into something like CodePen the variables work fine. Are there settings that would disable variables like these?

Posts: 1

Participants: 1

Read full topic

Ion-img set default image

$
0
0

@dipankar123 wrote:

Hi guys,
how to set a default image before image is loaded inside ion-image tag
i have tried this code below.

 <ion-img [src]="item.documentpath || '../../assets/imgs/default-img.png'" alt='Error Loading Image'></ion-img>

but not working
please help

thanks

Posts: 1

Participants: 1

Read full topic

Capacitor readdir() hangs with some paths

$
0
0

@rwinford77 wrote:

I am experimenting with the Capacitor Filesystem methods just as a learning experience. I’m building a simple little app to traverse the file directory tree and display directories and files. I use Filesystem.readdir(), and I want to start with root (file:///) and traverse the entire tree, at least what I have access to.

When I call readdir() it hangs on the first or second iteration–never returns with or without an error. This happens on both a physical device (Android 8.0 on a Samsung S7) and the Pixel emulator in Android Studio.

On the Pixel emulator, the first readdir() hangs on ‘file:///’.
On the Samsung physical device it hangs on the 2nd call to readdir, after it gets the first sub-directory. It successfully returns the file list from root (file:///) and then calls readdir on the first directory under root: (file:///persdata) which returns the file list “absolute,” a directory. When I call readdir() on that directory “file:///persdata/absolute” it hangs.

On both the emulator and physical device, if I start at “file:///etc” then everything works fine and I can traverse the /etc directory tree, including sub-directories.

My guess is it relates to a permissions problem, which I can handle if the call to readdir() would return with an error. I have a try / catch around the call, and I’m using async / await.

I’ve attached the ts code, as simple as I can get it to demonstrate the problem.

thanks,
Rick

export class HomePage {

  constructor() { }

   async ngOnInit() {

    console.log("===>>> in ngOnInit");
    await this.getFiles();
    console.log("end of ngOnInit <<<===");
  }

  async getFiles() {
    // let startPath = 'file:///etc';
    let startPath = 'file:///';
    let ret: ReaddirResult = null;

    console.log("===>>> calling readdir with ", startPath);
    try {
      ret = await Filesystem.readdir({ path: startPath});          // hangs here in readdir
    } catch (e) { console.log("!!! readdir failed with ", e) };     // no error is generated

    if(ret) console.log("after call to readdir, ret=", ret);          // we never get here

    console.log("end of rewreaddir <<<===");                       // we never get here
  }
}

==========================

Ionic:

   Ionic CLI                     : 5.2.4 (C:\Users\rick\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework               : @ionic/angular 4.7.4
   @angular-devkit/build-angular : 0.801.3
   @angular-devkit/schematics    : 8.1.3
   @angular/cli                  : 8.1.3
   @ionic/angular-toolkit        : 2.0.0

Capacitor:

   Capacitor CLI   : 1.1.1
   @capacitor/core : 1.1.1

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.0.0, browser 6.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 6 other plugins)

Utility:

   cordova-res : not installed
   native-run  : 0.2.8

System:

   NodeJS : v10.16.2 (C:\Program Files\nodejs\node.exe)
   npm    : 6.9.0
   OS     : Windows 10

Posts: 1

Participants: 1

Read full topic

How to focus alerts inputs and submit on keyboard enter. (Ionic v4)

$
0
0

@Dovel wrote:

In Ionic 3 the alert inputs works a bit different. Since Ionic 4 the input is not focused anymore and not submitted on keyboard enter. How to do this in Ionic 4?
It’s a bit annoying for the user to focus the input and hide the keyboard before he can submit the value. Because the ok-button is hidden / behind the keyboard overlay.

Posts: 1

Participants: 1

Read full topic

Viewing all 70909 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>