作者:虹彩戳穿_525 | 来源:互联网 | 2023-01-31 19:03
我已经实现了HybridWebView,如下所述:https : //developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/hybridwebview/
现在,我已经在渲染器中对网址进行了硬编码,如下所示:
Control.LoadUrl("http://www.google.com");
结果是打开了url,但始终在新的浏览器中,而不像我期望的那样嵌入到我的ContentPage中。
我可以使用Android.Webkit.WebView上的Settings属性来确定其显示方式吗?
1> Grace Feng..:
结果是打开了url,但始终在新的浏览器中,而不像我期望的那样嵌入到我的ContentPage中。
对于android平台,Android.Webkit.WebView
您可以从代码中看到它作为本机控件:
if (COntrol== null) {
var webView = new Android.Webkit.WebView (Forms.Context);
webView.Settings.JavascriptEnabled = true;
SetNativeControl (webView);
}
然后,对于Android.Webkit.WebView
,如果您未启用活动以处理查看网页的意图,则它是一个简单的网页查看器,而不是浏览器,因为单击链接后,默认的Android浏览器就会处理它。为了实现它,这个代码可以去任何地方的初始化如下WebView
:webView.SetWebViewClient(new WebViewClient())
。因此,您可以添加以下代码,例如:
if (COntrol== null) {
var webView = new Android.Webkit.WebView (Forms.Context);
webView.SetWebViewClient(new WebViewClient());
webView.Settings.JavascriptEnabled = true;
SetNativeControl (webView);
}
通常,我们还WebViewClient
可以继承并重写ShouldOverrideUrlLoading,如果它返回true,则意味着该方法已经处理了URL,并且该事件不应传播。