Xamarin Forms - Webview 页面的点击和水平滚动不起作用
Xamarin Forms - Webview page's click and horizontal scroll is not working
我在 Xamarin Forms 应用程序中有一个 webview 用于呈现 html 内容和隐私政策。我面临两个问题,如下所示。
- 内容页面或页面弹出窗口不响应点击操作。
- 页面中显示的图像尺寸较大,我无法水平滚动这些图像。
注意: 在 iOS 中一切正常,没有问题。
请查看我的机器人渲染实现。
public override bool DispatchTouchEvent(MotionEvent e)
{
RequestDisallowInterceptTouchEvent(true);
return base.OnTouchEvent(e);
}
protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
base.OnElementChanged(e);
if (null == e.OldElement)
{
var webView = Element as CustomWebView;
Control.SetBackgroundColor(Android.Graphics.Color.Transparent);
Control.Settings.AllowUniversalAccessFromFileURLs = true;
Control.Settings.BuiltInZoomControls = true;
Control.Settings.DisplayZoomControls = true;
Control.Settings.JavaScriptEnabled = true;
Control.Settings.DomStorageEnabled = true;
Control.Settings.EnableSmoothTransition();
Control.Settings.SetSupportMultipleWindows(true);
Control.SetWebViewClient(new ExtendedWebViewClient(webView));
Control.SetWebChromeClient(new MyWebChromeClient());
Control.LoadUrl(control.Uri);
}
}
我尝试了不同的选择,但没有成功。任何帮助将不胜感激。
请禁用 DispatchTouchEvent method.Just 在您的 WebViewRenderer
中使用 webView.Settings.UseWideViewPort=true;
。
您可以在 WebViewRenderer
中使用以下代码
var webView = (global::Android.Webkit.WebView)Control;
webView.Settings.UseWideViewPort=true;
如果我有长按钮。如果我添加这个属性,这里是 运行 GIF。
我在 Xamarin Forms 应用程序中有一个 webview 用于呈现 html 内容和隐私政策。我面临两个问题,如下所示。
- 内容页面或页面弹出窗口不响应点击操作。
- 页面中显示的图像尺寸较大,我无法水平滚动这些图像。
注意: 在 iOS 中一切正常,没有问题。
请查看我的机器人渲染实现。
public override bool DispatchTouchEvent(MotionEvent e)
{
RequestDisallowInterceptTouchEvent(true);
return base.OnTouchEvent(e);
}
protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
{
base.OnElementChanged(e);
if (null == e.OldElement)
{
var webView = Element as CustomWebView;
Control.SetBackgroundColor(Android.Graphics.Color.Transparent);
Control.Settings.AllowUniversalAccessFromFileURLs = true;
Control.Settings.BuiltInZoomControls = true;
Control.Settings.DisplayZoomControls = true;
Control.Settings.JavaScriptEnabled = true;
Control.Settings.DomStorageEnabled = true;
Control.Settings.EnableSmoothTransition();
Control.Settings.SetSupportMultipleWindows(true);
Control.SetWebViewClient(new ExtendedWebViewClient(webView));
Control.SetWebChromeClient(new MyWebChromeClient());
Control.LoadUrl(control.Uri);
}
}
我尝试了不同的选择,但没有成功。任何帮助将不胜感激。
请禁用 DispatchTouchEvent method.Just 在您的 WebViewRenderer
中使用 webView.Settings.UseWideViewPort=true;
。
您可以在 WebViewRenderer
var webView = (global::Android.Webkit.WebView)Control;
webView.Settings.UseWideViewPort=true;
如果我有长按钮。如果我添加这个属性,这里是 运行 GIF。