2015-12-11 66 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