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)
        {
        }