Xamarin ios 自定义 WkWebViewRenderer 滚动事件

Posted

技术标签:

【中文标题】Xamarin ios 自定义 WkWebViewRenderer 滚动事件【英文标题】:Xamarin ios custom WkWebViewRenderer Scrolled event 【发布时间】:2020-06-18 08:19:15 【问题描述】:

我在 My Xamarin Forms 应用程序中将 WebViewRenderer 更改为 WkWebViewRenderer。我之前有 Scrolled 方法,我覆盖它以检测滚动到结束。但是在 WkWebViewRenderer 中没有这样的方法可用。这还能如何实现?

public override void Scrolled(UIKit.UIScrollView scrollView)
    
        base.Scrolled(scrollView);
        float y1 = (float)scrollView.ContentOffset.Y;
        if ((this.Element as CustomWebview).ScrolledToEnd == false)
        
            if ((scrollView.ContentSize.Height - 20) < (y1 + this.Element.Height))
            
                (this.Element as CustomWebview).ScrolledToEnd = true;
                if ((this.Element as CustomWebview).ScrollToEndDelegate != null)
                
                    (this.Element as CustomWebview).ScrollToEndDelegate.Invoke(true);
                

            
        
    

【问题讨论】:

【参考方案1】:

好的,所以我想现在我们可以使用 WkWebView 的 ScrollView 属性中的滚动事件来代替 Scrolled 方法。这对我有用:

protected override void OnElementChanged(VisualElementChangedEventArgs e)
    
        base.OnElementChanged(e);
        base.ScrollView.Scrolled += ScrollDetect;
    

    private void ScrollDetect(object sender, EventArgs e)
    
        throw new NotImplementedException();
    

【讨论】:

以上是关于Xamarin ios 自定义 WkWebViewRenderer 滚动事件的主要内容,如果未能解决你的问题,请参考以下文章

WKWebView CanPerform 上的 Xamarin iOS 死锁

Xamarin iOS WKWebView 不显示谷歌recaptcha

iOS WKWebView长按自定义菜单功能

iOS 向 WKWebView 公开自定义 API

使用 WKWebView 创建自定义 ORKStep

Xamarin.iOS 自定义渲染器调用 SetNativeControl 的性能很慢