WebView Показать только часть сайта / скрыть часть сайта - PullRequest
2 голосов
/ 05 марта 2019

Я пытаюсь показать только часть сайта. Я пытаюсь скрыть слайд-шоу. По какой-то причине мой код не работает, и он по-прежнему показывает всю страницу. Я искал всю сеть, но не смог найти ответ, который сработал для меня. Я все еще новичок, так что извините, если я сделаю несколько глупых ошибок :) Заранее спасибо !!

package com.example.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

 webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new WebChromeClient());
        webview.setWebViewClient(new WebViewClient(){
        @Override
        public void onPageFinished(WebView view, String url) {
        super.onPageFinished(view, url);
        view.evaluateJavascript("document.getElementById('main-carousel2').style.display='none';", new ValueCallback<String>() {
            @Override
            public void onReceiveValue(String value) {
                Log.e(TAG,value);
            }
        });
    }
});
    webview.loadUrl("http://www.eventster.it");
}

1 Ответ

1 голос
/ 07 марта 2019

вот что вам нужно, чтобы скрыть раздел:

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.webkit.ValueCallback;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = MainActivity.class.getSimpleName();
    WebView webview;
    final String URL = "http://www.eventster.it";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        webview = findViewById(R.id.webview);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.setWebChromeClient(new WebChromeClient());
        webview.setWebViewClient(new WebViewClient(){
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                view.evaluateJavascript("document.getElementById('main-carousel2').style.display='none';", new ValueCallback<String>() {
                    @Override
                    public void onReceiveValue(String value) {
                        Log.e(TAG,value);
                    }
                });
            }
        });
        webview.loadUrl(URL);
    }
}

Дело в том, что вы просите webview скрыть контент, который еще не загружен, т.е. вам нужно подождать, пока webView завершит загрузку полной страницы, чтобы вы могли скрыть контент.

...