首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何处理链接打开新标签页的Xamarin Webview?

如何处理链接打开新标签页的Xamarin Webview?
EN

Stack Overflow用户
提问于 2020-12-18 18:30:53
回答 1查看 250关注 0票数 0

我正在使用Xamarin Webview来显示一个带有链接pdf文件的按钮的网站。浏览器会在新的标签页中打开pdf文件,但是webview不支持标签页,也不会在点击按钮时做任何事情。我该怎么处理呢?

最好的解决方案是在相同的网页视图中显示新标签,就像它不会打开新标签一样。我试图实现一个从android webview继承的自定义渲染器,但即使在那里,我也发现没有可能处理它,或者只是获得按钮重定向到的URL。

提前感谢您的帮助。

EN

回答 1

Stack Overflow用户

发布于 2020-12-18 19:31:33

WebView不支持选项卡,如果您想要一个选项卡式浏览器UI,则需要自己实现它。

1.将SetSupportMultipleWindows设置为true

2.实现WebChromeClient并覆盖它的OnCreateWindow方法。

代码语言:javascript
复制
public class MyWebViewRenderer : WebViewRenderer
    {
        public MyWebViewRenderer(Context context) : base(context)
        {
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Xamarin.Forms.WebView> e)
        {
            base.OnElementChanged(e);

            if(Control!=null)
            {
                Control.Settings.SetSupportMultipleWindows(true);
                Control.Settings.JavaScriptEnabled = true;
                Control.SetWebChromeClient(new MyWebChromeClient());
            }

        }

    }

    public class MyWebChromeClient: WebChromeClient
    {
        public override bool OnCreateWindow(Android.Webkit.WebView view, bool isDialog, bool isUserGesture, Message resultMsg)
        {

            if(!isDialog)
            {
                return true;
            }

            return base.OnCreateWindow(view, isDialog, isUserGesture, resultMsg);
        }
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65355402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档