Xamarin / Android Webview隐藏网站元素/类

时间:2018-11-14 12:02:02

标签: webview xamarin.android

我正在尝试制作一个小的Android应用程序,以显示加载网站的webview。 我用以下代码片段展示了它。但是我现在需要的是在页眉和页脚(例如菜单)上隐藏一些元素。我以为我可以不从网页上加载某些类,但是我不确定如何正确地做到这一点。有人在这方面有经验可以交流吗? :)

谢谢。

protected override void OnCreate(Bundle savedInstanceState)
        {


            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);
            Android.Support.V7.Widget.Toolbar toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            FloatingActionButton fab = FindViewById<FloatingActionButton>(Resource.Id.fab);
            fab.Click += FabOnClick;

            DrawerLayout drawer = FindViewById<DrawerLayout>(Resource.Id.drawer_layout);
            ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            NavigationView navigationView = FindViewById<NavigationView>(Resource.Id.nav_view);
            navigationView.SetNavigationItemSelectedListener(this);

            wbv = FindViewById<WebView>(Resource.Id.webView1);
            wbv.SetWebViewClient(new ExtendWebViewClient());
            WebSettings webSettings = wbv.Settings;
            webSettings.JavaScriptEnabled = true;
            wbv.LoadUrl(txtUrl);


        }

internal class ExtendWebViewClient : WebViewClient
        {
            public override bool ShouldOverrideUrlLoading(WebView view, string url)
              {

                view.LoadUrl(url);
                return true;
              }
        }

编辑:只是为了反映对第二堂课的更改

public class ExtendWebViewClient : WebViewClient
    {
        public override void OnPageFinished(WebView view, string url)
        {
            base.OnPageFinished(view, url);
             string js = "var myElements = document.getElementsByClassName('fusion-main-menu');" +
              " myElements[0].style.display = 'none'; ";
            if (Build.VERSION.SdkInt >= BuildVersionCodes.Kitkat)
            {
                view.EvaluateJavascript(js, null);
            }
            else
            {
                view.LoadUrl(js);
            }
        }

    }

1 个答案:

答案 0 :(得分:1)

自启用javascript以来,将有一个功能可在webview中运行脚本。

这是使用Xamarin.Forms.WebView的WebView的代码,这是您如何使用其ID隐藏Webview的任何元素的方法。

-Werror