C# 如何在Xamarin.iOS中刷回?
我在共享的Xamarin项目中有一个带有WebView的ContentPage 为了在WebView中启用Android的后退按钮,我使用了以下代码:C# 如何在Xamarin.iOS中刷回?,c#,ios,xamarin,C#,Ios,Xamarin,我在共享的Xamarin项目中有一个带有WebView的ContentPage 为了在WebView中启用Android的后退按钮,我使用了以下代码: protected override bool OnBackButtonPressed() { _myWebView.GoBack(); return true; } 众所周知,iOS没有后退按钮。我想启用向左滑动,以便导航到上一个Webview页面 最简单的方法是什么?你能试试下面的方法吗 NavigationPage
protected override bool OnBackButtonPressed()
{
_myWebView.GoBack();
return true;
}
众所周知,iOS没有后退按钮。我想启用向左滑动,以便导航到上一个Webview页面
最简单的方法是什么?你能试试下面的方法吗 NavigationPage.SetBackButton点击此按钮 或者,您也可以添加工具栏项,然后尝试以下操作
添加新的ToolbarItemBack,BackIcon.png,=>{{u webview.GoBack;} 我建议为WebView实现自定义渲染器,并将手势识别器附加到底层UIWebView。for iOS以Xamarin形式实现 Xamarin表单WebView实际上是iOS上的UIWebView。因此,您可以在渲染器中根据以下答案实现Swift代码:。将此Swift代码转换为C非常简单,但这也是一个潜在的解决方案: 基本溶液 这个解决方案相当基本,它只执行GoBack操作,而不像普通Safari浏览器那样实际显示页面的滑动。因此,如果需要的话,您可能需要添加更多的代码 过渡 您可以为此使用CoreAnimation。将此用作您的HandleSwipeBack方法: 这不会使您获得与Safari浏览器完全相同的行为,例如,如果您中途停止滑动,则不会取消动画。这样做是可能的,但需要更多的代码 额外信息 您还可以从中获得一些启发,因为单元测试和UI测试缺失,所以Xamarin表单中没有包含这些内容
不幸的是,默认的Xamarin表单手势识别器目前仅限于轻敲、捏和平移。谢谢您,它工作正常!他们有没有实现软转换的方法?我已经用一个转换示例更新了答案。如果这是你需要的,一定要接受答案。
public class SwipeWebViewRenderer : WebViewRenderer
{
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
var view = NativeView as UIWebView;
var swipeBackRecognizer = new UISwipeGestureRecognizer(HandleSwipeBack);
swipeBackRecognizer.Direction = UISwipeGestureRecognizerDirection.Right;
view.AddGestureRecognizer(swipeBackRecognizer);
}
void HandleSwipeBack()
{
(Element as WebView).GoBack();
}
}
void HandleSwipeBack()
{
CATransition animation = new CATransition();
animation.Type = CAAnimation.TransitionPush;
animation.Subtype = CAAnimation.TransitionFromLeft;
animation.Duration = 0.50;
animation.TimingFunction = CAMediaTimingFunction.FromName(CAMediaTimingFunction.EaseInEaseOut);
(NativeView as UIWebView).Layer.AddAnimation(animation, CALayer.Transition);
(Element as WebView).GoBack();
}