我的网络视图正在默认浏览器中打开网页

时间:2019-06-23 16:07:49

标签: android webview

因此,我刚刚实现了一个简单的Webview应用程序,其中正在加载stackoverflow主页。之前它工作正常,但是现在当我单击某个链接时,它将在默认浏览器中打开该链接。通过创建我的自定义webViewClient类,我已经实现并覆盖了shouldoverrideUrlLoading方法。 我知道有很多这样的问题要问,但是我之所以写这个问题仅仅是因为它们对我不起作用。

public class MyWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if(Uri.parse(url).getHost().endsWith(".com"))
            return false;
        Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse(url));
        view.getContext().startActivity(intent);
        return true;
    }

}

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        webView = findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView.setWebViewClient(new MyWebViewClient());

        final customEditText editText = findViewById(R.id.urlEditText);
        Button button = findViewById(R.id.enterButtonId);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                webView.loadUrl("https://"+editText.getText().toString().trim().toLowerCase());
            }
        });

    }

2 个答案:

答案 0 :(得分:0)

您可以使用此: webView.getSettings().setJavaScriptEnabled(true); webView.loadUrl("url"); 只需实现Web客户端并在loadUrl之前进行设置即可。最简单的方法是:

WebView.setWebViewClient(new WebViewClient());

答案 1 :(得分:0)

因此,当我在其中阅读教程https://www.journaldev.com/9333/android-webview-example-tutorial时,可以认为,当shouldOverrideUrlLoading()方法提供false时,它将在我们的webview中打开url,如果返回true,则根本不会加载该页面。因此,我认为我的代码较早起作用是因为我正在打开.com扩展网站,但是当我打开其他扩展名网站时,它将重定向到默认浏览器。