Переход назад от других разрывов приложения - PullRequest
1 голос
/ 16 мая 2019

Для нашей компании у нас есть множество устройств с Mobicontrol Soti.Это позволяет нам заблокировать устройство в так называемом режиме киоска, который отключает использование домашнего экрана и предоставляет настраиваемый экран, на котором есть только отключенные приложения, которые мы можем решить.

Одним из предоставляемых приложений является Ionicприложение, которое открывает ссылки в браузере (Soti Surf), но при этом возникает 2 проблемы.

код

HTML:

<div (click)="$ctrl.doTheThing()"> something </div>

JS:

private doTheThing() {
    this.inAppBrowser.create('surfs://' + url.replace(/^(https?:|)\/\//, ''), '_system');
}

Первый выпуск

Прежде всего, когда я использую кнопку возврата Android, кажется, что щелчок больше не работает (я поставил предупреждение впервая строка функции doTheThing, но ничего не видно).Другие кнопки в приложении, кажется, работают просто отлично, при использовании кнопки переключения приложения она также работает

Я пробовал:

  • preventDefault()
  • stopPropagation()
  • с использованием атрибута tappable
  • (tap) вместо (click)

, но, похоже, ничего не работает.У кого-нибудь есть идея исправить это?

Второй выпуск

Примечание: это менее важно При открытии ссылки он запоминает последнюю страницу (в soti surf), поэтомуиспользуя стрелку назад, он сначала переходит к последней ссылке, а когда у него больше нет мест для возврата, он возвращается к приложению

Я попытался:

  • , используя возвращаемое значениеinAppBrowser.create() и вызов close() при возвращении в мое приложение

Информация о версии

  • @ ionic-native / core версия: 4.16.0
  • Cordova-Android: 7.1.4
  • cordova -v: 8.1.2 (cordova-lib@8.1.1)
  • npm -v: 6.4.1
  • ionic: 4.12.0
  • nodeJS: 11.1.0

1 Ответ

0 голосов
/ 19 мая 2019

Здесь, в ионном режиме, вы можете предотвратить нажатие кнопки возврата устройства, используя Navbar Class и используя метод ловушки жизненного цикла

Вот пример

ionViewDidLoad() {
  this.navBar.backButtonClick = (e: UIEvent) => {
        // todo something
         if (condition ) 
        {
            this.getSaveDialog();
        } else{
                this.navCtrl.pop();
        }
    })
 }

Для открытия в Appbrowser в вашем приложении потеряет контроль над вашими событиями, вы не сможете отслеживать и управлять состоянием страниц.Это может быть поддержано браузером.вам нужно разместить хаки или альтернативу в вашем приложении, которое открывается в приложении

...