代码之家  ›  专栏  ›  技术社区  ›  iDibya.com

有没有像gmail那样在webview中打开默认浏览器?

  •  0
  • iDibya.com  · 技术社区  · 2 年前

    我正在寻找一种在默认浏览器中打开所有链接的方法,但要像Gmail一样在网络视图中打开。您可以查看Gmail应用程序,以及它如何使用移动默认浏览器打开其中的所有链接。我想有人试过了。

    我的代码MainActivity。Java语言

    package com.example.google;
    
    import androidx.annotation.Nullable;
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.app.AlertDialog;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.os.Build;
    import android.os.Bundle;
    import android.view.View;
    import android.webkit.WebChromeClient;
    import android.webkit.WebResourceRequest;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;
    import android.widget.ProgressBar;
    
    public class MainActivity extends AppCompatActivity {
    
        WebView webView;
        ProgressBar pgBar;
    
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            webView = findViewById(R.id.webView);
            pgBar = findViewById(R.id.pgBar);
            webView = findViewById(R.id.webView);
            webView.getSettings().setLoadsImagesAutomatically(true);
            webView.getSettings().setJavaScriptEnabled(true);
            webView.getSettings().setSupportZoom(false);
            webView.getSettings().setAllowContentAccess(true);
            webView.getSettings().setAllowFileAccess(true);
    
            webView.loadUrl("https://www.google.com/");
    
            webView.setWebViewClient(new WebViewClient()   {
                @Override
                public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
    
                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        if((String.valueOf(request.getUrl())).contains("https://www.yahoo.com/")) {
                            view.loadUrl(String.valueOf(request.getUrl()));
                        } else {
                            Intent intent = new Intent(Intent.ACTION_VIEW, request.getUrl());
                            view.getContext().startActivity(intent);
                        }
                    }
    
                    return true;
                }
    
    
            });
        }
    }
    

    您可以单击此处查看屏幕截图

    enter image description here enter image description here

    0 回复  |  直到 2 年前