在Nativescript Angular中,我可以从左边缘向右滑动以返回iOS。有什么方法可以检测或捕捉此滑动返回?这是因为我在屏幕上有一个按钮,点击时会执行“this.routerExtensions.back()”。我想确定“后退操作”是来自此按钮还是iOS滑动事件。谢谢
nx7onnlm1#
NativeScript在页面上具有此属性。https://docs.nativescript.org/api-reference/classes/ui_page.page.html#enableswipebacknavigation如果你把这个设置为false,你应该可以创建自己的后退手势。即使在原生iOS上,我也不确定你是否可以直接点击后退手势而不用自己的手势代替它。
72qzrwbm2#
这是我如何能够解决它的Android和iOS:1.调整构造函数以在Android中操作pullToLeft函数,并禁用iOS中的默认向后滑动:
constructor(...) { if (isAndroid) { Application.android.on( AndroidApplication.activityBackPressedEvent, (data: AndroidActivityBackPressedEventData) => { data.cancel = true; ...yourCustomFunction() } ); } else { page.enableSwipeBackNavigation = false; } }
1.对于Android,它已经在工作了-对于iOS,你需要编写一个可以在模板上使用的函数(这也是你识别滑动动作的方法):
public onSwipe = (args: SwipeGestureEventData) => { if (!isAndroid) { if (args.direction === SwipeDirection.right) { ...yourCustomFunction() } } };
1.禁用默认的PopGestureSerializer,并在模板/元素顶部添加滑动功能,它应该也能在iOS上工作:
<StackLayout [interactivePopGestureRecognizer]="false" (swipe)='onSwipe($event)'> ... </StackLayout>
2条答案
按热度按时间nx7onnlm1#
NativeScript在页面上具有此属性。
https://docs.nativescript.org/api-reference/classes/ui_page.page.html#enableswipebacknavigation
如果你把这个设置为false,你应该可以创建自己的后退手势。即使在原生iOS上,我也不确定你是否可以直接点击后退手势而不用自己的手势代替它。
72qzrwbm2#
这是我如何能够解决它的Android和iOS:
1.调整构造函数以在Android中操作pullToLeft函数,并禁用iOS中的默认向后滑动:
1.对于Android,它已经在工作了-对于iOS,你需要编写一个可以在模板上使用的函数(这也是你识别滑动动作的方法):
1.禁用默认的PopGestureSerializer,并在模板/元素顶部添加滑动功能,它应该也能在iOS上工作: