24

I would like to present an AdWords interstitial before the user returns to the previous page. How can I do this when the return button is pressed?

Charles Jr
  • 8,333
  • 15
  • 53
  • 74

1 Answers1

54

I think you can make use of WillPopScope widget. You can pass a callback function which will be called when the view is about pop. Just do whatever tasks to be completed before pop and then return true.

Example:

Future<bool> _willPopCallback() async {
    // await showDialog or Show add banners or whatever
    // then
    return true; // return true if the route to be popped
}


//then pass the callback to WillPopScope
new WillPopScope(child: new Scaffold(), onWillPop: _willPopCallback)
starball
  • 20,030
  • 7
  • 43
  • 238
Hemanth Raj
  • 32,555
  • 10
  • 92
  • 82
  • 3
    is there any way to keep the swipe to pop functionality when using a WillPopScope? Mine stops working when I add it. I am trying to use it so that when someone swipes to pop, the keyboard will dismiss, but I have yet to figure it out. I tried it with a Pan Gesture but that works on swipe everywhere but the edge where swipe to pop happens. – tapizquent Jul 27 '19 at 04:48
  • The argument type 'Future' can't be assigned to the parameter type 'Future Function()'. – Muhammad Adil Aug 07 '20 at 12:31
  • I think you are making a function call `_willPopCallback()`, just use `_willPopCallback` – Hemanth Raj Aug 09 '20 at 17:11