Android.Webkit.WebView未在Xamarin.Android中加载url
Android.Webkit.WebView未在Xamarin.Android中加载url,android,xamarin,android-intent,xamarin.forms,xamarin.android,Android,Xamarin,Android Intent,Xamarin.forms,Xamarin.android,Android.Webkit.WebView不加载url public void LaunchBrowserView(string authorizationServerUrl) { try { var web_view = new Android.Webkit.WebView(this); web_view.Settings.JavaScriptEnabled =
Android.Webkit.WebView
不加载url
public void LaunchBrowserView(string authorizationServerUrl)
{
try
{
var web_view = new Android.Webkit.WebView(this);
web_view.Settings.JavaScriptEnabled = true;
web_view.Settings.DomStorageEnabled = true;
//web_view.Settings.= true;
//web_view.Settings.AllowContentAccess = true;
web_view.SetWebViewClient(new MyBrowser());
web_view.Settings.LoadsImagesAutomatically = true;
web_view.LoadUrl(authorizationServerUrl);
}
catch (System.Exception ex)
{
}
}
我在主活动类中创建了一个方法,该方法有一个WebView,但没有加载url
public void LaunchBrowserView(string authorizationServerUrl)
{
try
{
var web_view = new Android.Webkit.WebView(this);
web_view.Settings.JavaScriptEnabled = true;
web_view.Settings.DomStorageEnabled = true;
//web_view.Settings.= true;
//web_view.Settings.AllowContentAccess = true;
web_view.SetWebViewClient(new MyBrowser());
web_view.Settings.LoadsImagesAutomatically = true;
web_view.LoadUrl(authorizationServerUrl);
}
catch (System.Exception ex)
{
}
}
我测试了您提供的代码,并自行调用,效果很好 活动\u main.xml
<android.webkit.WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
结果:
我已经上传到GitHub上,您可以从WebView文件夹下载以供参考。
更新:
如果要在没有axml文件的情况下执行此操作,可以在“活动”中创建布局
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
//SetContentView(Resource.Layout.activity_main);
RelativeLayout layout_main = new RelativeLayout(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent);
layout_main.LayoutParameters = layoutParams;
WebView webView = new WebView(this);
webView.LayoutParameters = layoutParams;
layout_main.AddView(webView);
SetContentView(layout_main);
LaunchBrowserView("https://www.google.com", webView);
}
public void LaunchBrowserView(string authorizationServerUrl, WebView webView)
{
try
{
webView.Settings.JavaScriptEnabled = true;
webView.Settings.DomStorageEnabled = true;
//web_view.Settings.= true;
//web_view.Settings.AllowContentAccess = true;
webView.SetWebViewClient(new MyBrowser());
webView.Settings.LoadsImagesAutomatically = true;
webView.LoadUrl(authorizationServerUrl);
}
catch (System.Exception ex)
{
}
结果:
我已经上传到GitHub,从WebViewDemo2下载以供参考。
为什么您需要一个静态变量?Hello@FreakyAli我编辑了我的问题请看。这看起来像是一个服务。那么,您是在MainActivity中创建此服务的吗?另外,为什么您需要在服务中使用WebView?另外,您不认为这样做会造成内存泄漏,因为您的活动永远不会被处理吗?我正在加载web URL在服务中加载URL?你为什么需要我的意思是我很困惑!Hello@WendyZang在您的解决方案中使用了
var webView=FindViewById(Resource.Id.webView)
但我没有使用axml文件以任何其他方式声明WebView。我已经升级了没有axml的方式,您可以从github下载。Hello@WendyZang我没有设置SetContentView(xml)
我正在通过此LoadApplication(new App())打开Xaml页面代码>@Deepakyogi什么是xml<代码>加载应用程序(新应用程序())
用于通过App类的实例调用LoadApplication,它不用于打开xaml页面。如果不使用SetContentView(layout_main),则可能通过WebView以这种方式加载url`WebView WebView=new WebView(this);LoadUrl(authorizationServerUrl)`
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
Xamarin.Essentials.Platform.Init(this, savedInstanceState);
// Set our view from the "main" layout resource
//SetContentView(Resource.Layout.activity_main);
RelativeLayout layout_main = new RelativeLayout(this);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MatchParent, RelativeLayout.LayoutParams.MatchParent);
layout_main.LayoutParameters = layoutParams;
WebView webView = new WebView(this);
webView.LayoutParameters = layoutParams;
layout_main.AddView(webView);
SetContentView(layout_main);
LaunchBrowserView("https://www.google.com", webView);
}
public void LaunchBrowserView(string authorizationServerUrl, WebView webView)
{
try
{
webView.Settings.JavaScriptEnabled = true;
webView.Settings.DomStorageEnabled = true;
//web_view.Settings.= true;
//web_view.Settings.AllowContentAccess = true;
webView.SetWebViewClient(new MyBrowser());
webView.Settings.LoadsImagesAutomatically = true;
webView.LoadUrl(authorizationServerUrl);
}
catch (System.Exception ex)
{
}