При доступе к странице формы в приложении ionic3 из флажков push-уведомлений и переключателей при нажатии не отмечается - PullRequest
0 голосов
/ 28 июня 2019

Я создаю приложение, в котором перечислены некоторые события, на которые могут претендовать пользователи.Я использую сервис FCM для отправки уведомлений на устройства и открытия приложения, а затем для конкретного события с помощью формы приложения.

Все это прекрасно работает при доступе к странице формы из приложения, но при доступе через уведомление о нажатии запуска формыведет себя странно.Радио кнопки и флажки не проверяются при нажатии их.Они в конечном итоге проверяются, если есть какие-то другие входы, и вы сосредоточены на них.Это действительно странно, трудно описать ...

Должна быть какая-то проблема с ионной структурой, потому что объекты за этими переключателями и флажками меняют свои значения при нажатии.Это просто поведение HTML, которое не работает должным образом.

У меня есть push.ts провайдера, где вся работа по получению токена и извлечению уведомлений выполнена.Я внедряю этого провайдера в app.component.ts и внутри конструктора делаю следующее:

this.platform.ready().then(() => {

    // set push listeners
    this.listenPushEvents();

    // check if the user is logged in
    this.users.isLoggedIn().then( (response) => {
        if(response){
            this.users.refreshUserProfile().then( () =>{
                this.users.getUserProfile().then((user) => {
                    this.user = user;
                    this.rootPage = HomePage;

                    // push notifications
                    this.pushService.initPushNotification();   

                    this.splashScreen.hide();                
                });
            })
        }
        else{
            this.rootPage = LoginPage;
            this.splashScreen.hide();
        }
    });
});

listenPushEvents(){
    this.events.subscribe('push:event', (id) => {
        this.openPage('event-view', id);
    });
}

openPage(page, id?) {
    switch(page){
        case 'event-view':
            this.nav.push(PrijavaNaDogodekViewPage, {id:id});
        break;
    }
}

затем в push.ts

// on notification
this.fcm.onNotification().subscribe(data => {
    if(data.wasTapped){
        this.events.publish('push:'+data.type, Number(data.id) );
    } else {
        let title, message, ok_btn, cancel_btn;
        let confirmAlert;

        title = data.title;
        message = data.body;

        switch(data.type){
            case "event":
                ok_btn = "Prijava";
                cancel_btn = "Prekliči"
            break;
        }

        confirmAlert = this.alertCtrl.create({
            title: title,
            message: message,
            buttons: [{
                text: cancel_btn,
                role: 'cancel'
            }, {
                text: ok_btn,
                handler: () => {
                    this.events.publish('push:'+data.type, Number(data.id) );
                }
            }]
        });
        confirmAlert.present();
    };
});

Кто-нибудь сталкивался с такой проблемой?

...