Страница блокировки экрана обнаруживает Ionic - PullRequest
0 голосов
/ 03 мая 2020

Мое приложение, созданное с помощью Ioni c 4, должно делать эту простую вещь: если пользователь оставляет мое приложение, чтобы открыть другое, мое приложение остается открытым в фоновом режиме, но понимает, что пользователь покинул приложение. Если пользователь вместо этого блокирует экран, приложение должно понимать, что оно не закрылось, а только заблокировало экран.

Я использовал backgroundmode.isactive(), чтобы отправить пользователю предупреждение «Вы вышли из системы», но если вы заблокируете экран, выдается то же предупреждение. Я не хочу это.

Мое приложение предназначено только для iOS.

1 Ответ

0 голосов
/ 04 мая 2020

Я не совсем уверен, что вы хотите сделать, но я думаю, что способ сделать это через document.addEventListener. В моем приложении есть экран блокировки, который вызывается каждый раз, когда приложение возвращается на передний план.

Я поместил в конструкторе app.component.ts нужные мне слушатели. В моем случае слушатель имеет тип 'resume', который вызывается каждый раз, когда приложение выходит на передний план (оба при первом запуске после того, как оно перешло в фоновый режим). Например:

export class AppComponent {
  constructor() {
     initializeApp();
  }

  private initializeApp(): void {
     document.addEventListener('resume', () => {
                // Here your code to call lock screen if you need it
            });
  }
}

Если вы хотите проверить некоторые действия, которые пользователь мог выполнить (активно блокируя приложение), вы можете использовать плагин Native Storage (https://ionicframework.com/docs/native/native-storage). При этом вы можете хранить значение ключа в постоянном хранилище. Таким образом, если пользователь блокирует приложение, вы сохраняете isAppLocked: true, а затем в своем прослушивателе событий резюме проверяете значение ключа isAppLocked и реагируете на него. Примерно так: Где пользователь может заблокировать приложение:

public onUserClickOnLockApp() {
   this.nativeStorage.setItem('isAppLocked', true);
   // Some more code to maybe close the app
}

В app.component.ts (завершение фрагмента раньше):

private initializeApp(): void {
     document.addEventListener('resume', () => {
                this.nativeStorage.getItem('isAppLocked').then(lockStatus => {
                   if(lockStatus) {
                      // Code to show lock screen
                   }
             }
      });
  }

Окончательный совет: событие 'pause' может Также полезно, чтобы вы «слушали» (когда приложение переходит в фоновый режим).

Надеюсь, это поможет !!

...