ngZone work like a charm for me!
Maybe you are doing something not right, that’s my code.
You can check old code in my topic.
import { Component, NgZone } from '@angular/core';
import { NavController, Alert, reorderArray} from 'ionic-angular';
declare var SpeechRecognition: any;
@Component({
templateUrl: 'build/pages/notes/notes.html',
})
export class NotesPage {
_zone: any;
recognition: any;
listaSpesa: any = [];
constructor(private nav: NavController, _zone: NgZone) {
this._zone = _zone;
this.recognition = new SpeechRecognition();
this.recognition.lang = 'it-IT';
this.recognition.onresult = (event => {
if (event.results.length > 0) {
console.log('--> risultati: ', event.results[0][0].transcript);
this._zone.run(() => this.listaSpesa.push({alimento: event.results[0][0].transcript}));
}
console.log('--> SpeechRecognition: listening END');
});
}
addNoteMic() {
console.log('--> SpeechRecognition: listening');
this.recognition.start();
}