NativeScript Angular 2 отключить прокрутку назад на IOS
Кто-нибудь знает, как отключить прокрутку назад после перехода на новую страницу?
Я читал это: http://docs.nativescript.org/angular/core-concepts/angular-navigation
Очистка истории навигации по страницам При навигации по страницам в NativeScript у вас есть возможность перейти на другую страницу и очистить историю навигации по страницам. Это означает, что пользователь не сможет вернуться назад с помощью кнопки "назад" (или проведите назад в iOS). Это полезно в тех случаях, когда у вас есть страница входа в систему, и вы не хотите, чтобы пользователи могли вернуться к ней после входа в систему. Но я хочу вернуться на страницу входа, когда пользователь нажал кнопку выхода.
У меня есть 2 страницы, LoginPage и FirstPage. Я использую RouterExtensions. так что this.nav.navigate(["/firstPage"], { clearHistory: true}); это работает. На второй странице у меня есть кнопка, которая переходит к this.nav.navigate(["/"]) (поэтому вернемся к страница входа). Но я получаю
11 августа 19:30:26 antons-MBP appname[62814]: файл ОШИБКИ КОНСОЛИ:///app/tns_modules/zone.js/dist/zone-node.js:421:23: ошибка: невыполненная (в обещании): TypeError: undefined не является объектом (оценка 'cacheItem.reusedRoute')
2 ответа
Я проверял clearHistory
при переходе на новую страницу и кажется, что все работает, как ожидалось. Не могли бы вы проверить, используете ли вы последний CLI и модули. Вы можете найти инструкции здесь, где были описаны, как обновить до последней версии NativeScript. В связи с этим вам нужно обновить tns-core-modules
а также nativescript-angular
В захватывающем проекте вы можете следовать нижеописанным инструкциям.
tns plugin remove tns-core-modules
tns plugin add tns-core-modules@2.2.0
tns plugin remove nativescript-angular
tns plugin add nativescript-angular@0.3.0
Вы также можете просмотреть мой пример приложения здесь, как использовать clearHistory
в NativeScript Angular.
Мне удалось отключить жест смахивания на страницу, вставив следующий код
constructor(private nav: RouterExtensions) {
this.nav.frame.ios.controller.interactivePopGestureRecognizer.enabled = false;
}
Таким образом, мне не нужно изменять библиотеку, но недостатком является то, что мне нужно повторно включать "interactivePopGestureRecognizer" на каждой странице, на которой я хочу, чтобы смахивание назад работало.