2015-12-11 36 views
0

我想捏事件添加到我的WebView并没有因此根据Xamarin文档:Xamarin网页视图手势不点火

 PinchGestureRecognizer pinch = new PinchGestureRecognizer(); 
     pinch.PinchUpdated += ClearCache; 
     webview.GestureRecognizers.Add(pinch); 

然而,该事件不触发。有什么我需要做的,以使其工作?

这里与我遇到这也是不工作的所有解决方案的混乱霰弹方法:

public class SettingsPage : ContentPage { 

    ICommand tapCommand; 

    public SettingsPage() { 

     var url = Path.Combine(DependencyService.Get<IBaseUrl>().Get(), "index.html"); 

     WebView webview = new WebView() { 
      Source = new UrlWebViewSource { Url = url }, 
      WidthRequest = 1000, 
      HeightRequest = 1000 
     }; 

     //webview.Navigating += ClearCache; ********THIS WORKS********* 

     Padding = Device.OnPlatform<Thickness>(
      new Thickness(1, 20, 1, 1), 
      new Thickness(1), 
      new Thickness(1) 
      ); 

     PinchGestureRecognizer pinch = new PinchGestureRecognizer(); 
     pinch.PinchUpdated += ClearCache; 
     webview.GestureRecognizers.Add(pinch); 


     tapCommand = new Command(OnTapped); 


     TapGestureRecognizer tap = new TapGestureRecognizer { NumberOfTapsRequired = 3 }; 
     tap.Tapped += ClearCache; 
     tap.SetBinding(TapGestureRecognizer.CommandProperty, "TapCommand"); 
     tap.Command = tapCommand; 
     webview.GestureRecognizers.Add(tap); 

     StackLayout stackLayout = new StackLayout { Spacing = 0 }; 
     stackLayout.Children.Add(webview); 
     stackLayout.Children.Add(btnClearCache); 
     View parent = (View)webview.ParentView; 
     parent.GestureRecognizers.Add(tap); 
     parent.GestureRecognizers.Add(pinch); 
     Content = webview;    
    } 

    private void OnTapped(object obj) { 
     var service = DependencyService.Get<IPlatformService>(); 
     service.ClearWebViewCache(); 
    } 

    private void ClearCache(object sender, EventArgs e) { 
     var service = DependencyService.Get<IPlatformService>(); 
     service.ClearWebViewCache(); 
    } 

    public ICommand TapCommand { 
     get { return tapCommand; } 
    } 
+0

轻拍手势是否工作,或者是否所有手势都不适用于WebView? –

+0

@亚当唯一的选择是挖掘和捏,既不工作 – rory

回答

2

他的WebView是很讨厌的,当涉及到的手势。

您可以使用MR.Gestures处理iOS,Android和WinPhone 8.0 Silverlight上的向下和向上手势。对于Win Phone 8.1/WinRT,我还没找到办法。 如果您只需要iOS和Android,那么所有手势都可以在WebView上运行。

更多的信息在compatibility table on mrgestures.com

+0

€10 +增值税是不错,如果它解决了我的问题。感谢那。关于你说的地方WebView在手势方面很讨厌......如果它存在,你能指点我到错误跟踪器吗?我似乎无法找到它... – rory