# How to disable hardware back button when using LoadingController

**URL:** <https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260>\
**Category:** ionic-v3\
**Created:** [December 13, 2017, 12:22pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260 "2017-12-13T12:22:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![RajaJakkampudi](https://sea1.discourse-cdn.com/ionicframework/user_avatar/forum.ionicframework.com/rajajakkampudi/32/123931_2.png) [@RajaJakkampudi](https://forum.ionicframework.com/u/RajaJakkampudi)\
**Post date:** [December 13, 2017, 12:22pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/1 "2017-12-13T12:22:55Z")

</div>

In android device when data is loading.

If i press hardware backpress it showing loading controller but going back to previous page.

```auto
screenLoading() {
    this.loader = this.loadingCtrl.create({
      spinner: 'crescent',
      content: 'Loading',
      dismissOnPageChange: true
    })
	
    this.loader.present();
	}

```

I want to disable backpress when data is loading?

I had tried this below code it was working previously but its not working know in ionic 3

```auto
 constructor(public navCtrl: NavController, 
    public navParams: NavParams, 
    public driverInfo: DriverInfoProvider, 
    public menuCtrl: MenuController, 
    public driverServices: MyDriverServiceConnector, 
    public imcNav: IMCNavStack,
    public loadingCtrl: LoadingController,
	
	public plt: Platform) {
	this.plt.ready().then(()=>{ plt.registerBackButtonAction(() => { }); });

	}

```

---

<div class="post-metadata">

**Author:** ![RajaJakkampudi](https://sea1.discourse-cdn.com/ionicframework/user_avatar/forum.ionicframework.com/rajajakkampudi/32/123931_2.png) [@RajaJakkampudi](https://forum.ionicframework.com/u/RajaJakkampudi)\
**Post date:** [December 13, 2017, 12:24pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/2 "2017-12-13T12:24:15Z")

</div>

> [@RajaJakkampudi](#):
>
> public plt: Platform) {  
> this.plt.ready().then(()=\>{ plt.registerBackButtonAction(() =\> { }); });

This code is not working know after updating to ionic 3  
when i click on button —\> page is not opening  
if i comment this code and click on button → page is opening

---

<div class="post-metadata">

**Author:** ![yajuve](https://avatars.discourse-cdn.com/v4/letter/y/2bfe46/32.png) [@yajuve](https://forum.ionicframework.com/u/yajuve)\
**Post date:** [December 13, 2017, 8:07pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/3 "2017-12-13T20:07:10Z")

</div>

> [@RajaJakkampudi](#):
>
> dismissOnPageChange: true

change it to

```auto
dismissOnPageChange: false

```

---

<div class="post-metadata">

**Author:** ![RajaJakkampudi](https://sea1.discourse-cdn.com/ionicframework/user_avatar/forum.ionicframework.com/rajajakkampudi/32/123931_2.png) [@RajaJakkampudi](https://forum.ionicframework.com/u/RajaJakkampudi)\
**Post date:** [December 14, 2017, 5:33am UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/4 "2017-12-14T05:33:56Z")

</div>

Thanks for your response  
I don’t want to go back when data is loading  
I wanted to disable hardware backpress in android when data is loading

---

<div class="post-metadata">

**Author:** ![maxgomes92](https://sea1.discourse-cdn.com/ionicframework/user_avatar/forum.ionicframework.com/maxgomes92/32/108588_2.png) [@maxgomes92](https://forum.ionicframework.com/u/maxgomes92)\
**Post date:** [February 16, 2018, 12:58pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/5 "2018-02-16T12:58:14Z")

</div>

Hi, I developed a solution for this.  
I did it by wrapping the LoadingController.

```auto
import {Injectable} from "@angular/core";
import {Loading, LoadingController, LoadingOptions, Platform} from "ionic-angular";

@Injectable()
export class LoaderController {

  constructor(
    private loadingCtrl: LoadingController,
    private platform: Platform
  ) {

  }

  create(opts?: LoadingOptions): Loading {
    let subscription;
    let loading = this.loadingCtrl.create(opts);

    loading.willEnter.subscribe(() => {
      subscription = this.platform.registerBackButtonAction(() => {
        console.log('back button pressed');
      }, 10);
    });

    loading.onDidDismiss(() => {
      subscription();
    });

    return loading;
  }
}

```

Every Loading you create will replace the backButton original behaviour.

Just make sure in your project there is no backButton action with a higher priority (in this case, I set it to 10).

---

<div class="post-metadata">

**Author:** ![mhartington](https://sea1.discourse-cdn.com/ionicframework/user_avatar/forum.ionicframework.com/mhartington/32/137757_2.png) [@mhartington](https://forum.ionicframework.com/u/mhartington)\
**Post date:** [July 19, 2021, 9:59pm UTC](https://forum.ionicframework.com/t/how-to-disable-hardware-back-button-when-using-loadingcontroller/115260/6 "2021-07-19T21:59:24Z")

</div>

Closed on July 19, 2021, 9:59pm UTC


