mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 03:00:58 +08:00
fix(android): setting hardwareBackButton: false in config now disabled default webview behavior (#22555)
resolves #18237
This commit is contained in:
@ -13,7 +13,7 @@ export class App implements ComponentInterface {
|
||||
|
||||
componentDidLoad() {
|
||||
if (Build.isBrowser) {
|
||||
rIC(() => {
|
||||
rIC(async () => {
|
||||
const isHybrid = isPlatform(window, 'hybrid');
|
||||
if (!config.getBoolean('_testing')) {
|
||||
import('../../utils/tap-click').then(module => module.startTapClick(config));
|
||||
@ -24,8 +24,11 @@ export class App implements ComponentInterface {
|
||||
if (config.getBoolean('inputShims', needInputShims())) {
|
||||
import('../../utils/input-shims/input-shims').then(module => module.startInputShims(config));
|
||||
}
|
||||
const hardwareBackButtonModule = await import('../../utils/hardware-back-button');
|
||||
if (config.getBoolean('hardwareBackButton', isHybrid)) {
|
||||
import('../../utils/hardware-back-button').then(module => module.startHardwareBackButton());
|
||||
hardwareBackButtonModule.startHardwareBackButton();
|
||||
} else {
|
||||
hardwareBackButtonModule.blockHardwareBackButton();
|
||||
}
|
||||
if (typeof (window as any) !== 'undefined') {
|
||||
import('../../utils/keyboard/keyboard').then(module => module.startKeyboardAssist(window));
|
||||
|
@ -8,6 +8,20 @@ interface HandlerRegister {
|
||||
id: number;
|
||||
}
|
||||
|
||||
/**
|
||||
* When hardwareBackButton: false in config,
|
||||
* we need to make sure we also block the default
|
||||
* webview behavior. If we don't then it will be
|
||||
* possible for users to navigate backward while
|
||||
* an overlay is still open. Additionally, it will
|
||||
* give the appearance that the hardwareBackButton
|
||||
* config is not working as the page transition
|
||||
* will still happen.
|
||||
*/
|
||||
export const blockHardwareBackButton = () => {
|
||||
document.addEventListener('backbutton', () => {}); // tslint:disable-line
|
||||
}
|
||||
|
||||
export const startHardwareBackButton = () => {
|
||||
const doc = document;
|
||||
|
||||
|
Reference in New Issue
Block a user