我正在使用Xamarin Webview来显示一个带有链接pdf文件的按钮的网站。浏览器会在新的标签页中打开pdf文件,但是webview不支持标签页,也不会在点击按钮时做任何事情。我该怎么处理呢?
最好的解决方案是在相同的网页视图中显示新标签,就像它不会打开新标签一样。我试图实现一个从android webview继承的自定义渲染器,但即使在那里,我也发现没有可能处理它,或者只是获得按钮重定向到的URL。
提前感谢您的帮助。
发布于 2020-12-18 19:31:33
WebView不支持选项卡,如果您想要一个选项卡式浏览器UI,则需要自己实现它。
1.将SetSupportMultipleWindows设置为true
2.实现WebChromeClient并覆盖它的OnCreateWindow方法。
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);
}
}
}https://stackoverflow.com/questions/65355402
复制相似问题