Ionic: NavControlller.setRoot перенаправить меня обратно на мою страницу - PullRequest
0 голосов
/ 25 сентября 2018

У меня проблема с моим ионным приложением: когда я пытаюсь вернуться на свою HomePage после выполнения платежа PayPal, я сразу перенаправляюсь обратно на мою страницу.

Это происходит только при развертывании приложения намое устройство iOS и странная часть заключается в том, что если я не перейду на платеж PayPal, навигация будет работать идеально.

Вот некоторая часть моего кода:

html:

[...]
<div id="page7" [hidden]="hidePage7">
  <h1>Order summary</h1>
  [...]
  <button class="bigButton" (click)="validatePage7()">VALIDER</button>
</div>

<div id="payment" [hidden]="hidePayment">
  <div class="upperPart">
    <h1>Paiement</h1>
  </div>
  <div id="paypal-button"></div>
</div>

<div id="page9" [hidden]="hidePage9">
  <div class="upperPart">
    <h1>Paiement</h1>
  </div>
  <div class="midPart">
    <h3>{{endMessage}}</h3>
  </div>
  <div class="bottomPart">
    <button class="bigButton" (click)="goToHome()">ACCUEIL</button>
  </div>
</div>

машинопись:

validatePage7(){

  this.bookingService.create(this.booking).subscribe((response) => {
    this.hidePage7 = true;
    this.hidePayment = false;

    paypal.Button.render({
      env: 'sandbox',

      payment: (data, actions) => {  
        return actions.request.post(Api.API_URL + '/payment/create-payment', {
          bookingId: response.id
        })
          .then(function (res) {
            return res.id;
          });
      },
      onAuthorize: (data, actions) => {
        return actions.request.post(Api.API_URL + '/payment/execute-payment', {
          paymentID: data.paymentID,
          payerID: data.payerID
        })
          .then((res) => {
            this.endMessage = "Commande réalisée avec succès !";
            this.hidePayment = true;
            this.hidePage9 = false;
          });
      }
    }, '#paypal-button');
  });
}

goToHome(){
  this.navController.setRoot(MainPage);
}

1 Ответ

0 голосов
/ 25 сентября 2018

Попробуйте использовать это: this.navController.popTo(this.navCtrl.getByIndex(0));//pops to menu page

Если страница меню является вашей корневой страницей, вы можете использовать эту функцию, если не можете изменить индексный номер, и он будет отображаться в порядке стека вашей страницы.

Редактировать: альтернативное решение, как указано в комментариях, было бы создать страницу успеха, используя .push ();и после перехода туда пользователь может вернуться к главной странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...