Как изменить сайт в веб-просмотре с помощью кнопки в Android - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть webview эта загрузка по умолчанию Youtube.Тогда у меня есть editview и кнопка.Я хочу ввести другой веб-сайт (for example:http://www.google.com) в editview, и когда я нажму кнопку, webview сменится на веб-сайт.Но он обновится и сохранится в Youtube.Я пытался изменить setDesktopMode() на onClick(), это сработало.Пожалуйста, помогите мне.

Вот мой код Java.

public class MainActivity extends AppCompatActivity {

    String Url;
    //Main code
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //Perform web view
        final WebView webview = (WebView) findViewById(R.id.webview);
        Url = "http://www.youtube.com";
        WebSettings webSettings = webview.getSettings();
        webSettings.setJavaScriptEnabled(true);
        //setContentView(webview);
        webview.setWebViewClient(new WebViewClient());
        webview.loadUrl(Url);
        setDesktopMode(webview, true);

        final EditText text1 = (EditText) findViewById(R.id.text1);
        Button ok = (Button)findViewById(R.id.ok);
        ok.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View view) {
                Url = text1.getText().toString();
                webview.clearCache(true);
                webview.loadUrl(Url);
                //webview.reload();
                setDesktopMode(webview, true);
                //return;

            }
        });
    }

    public void setDesktopMode(WebView webView, boolean enabled){
        String newUserAgent = webView.getSettings().getUserAgentString();
        if(enabled){
            try{
                String ua = webView.getSettings().getUserAgentString();
                String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
                newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
            } catch (Exception e){
                e.printStackTrace();
            }
        } else {
            newUserAgent = null;
        }

        webView.getSettings().setUserAgentString(newUserAgent);
        webView.getSettings().setUseWideViewPort(enabled);
        webView.getSettings().setLoadWithOverviewMode(enabled);
        webView.reload();
    }

}

1 Ответ

0 голосов
/ 10 декабря 2018

Привет Только что внесены некоторые изменения в коде выше.

    Button button = findViewById(R.id.button);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            EditText ed = findViewById(R.id.editText);
            webView.loadUrl(null);
            webView.clearCache(true);
            setDesktopMode(webView, true);
            webView.loadUrl(ed.getText().toString());
            //webview.reload();

        }
    });

В установленном настольном методе удалите строку перезагрузки.

public void setDesktopMode(WebView webView, boolean enabled){
    String newUserAgent = webView.getSettings().getUserAgentString();
    if(enabled){
        try{
            String ua = webView.getSettings().getUserAgentString();
            String androidOSString = webView.getSettings().getUserAgentString().substring(ua.indexOf("("), ua.indexOf(")") + 1);
            newUserAgent = webView.getSettings().getUserAgentString().replace(androidOSString, "(X11; Linux x86_64)");
        } catch (Exception e){
            e.printStackTrace();
        }
    } else {
        newUserAgent = null;
    }

    webView.getSettings().setUserAgentString(newUserAgent);
    webView.getSettings().setUseWideViewPort(enabled);
    webView.getSettings().setLoadWithOverviewMode(enabled);
   // webView.reload();
}

Теперь она отлично работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...