1. 程式人生 > >android如何使webview不跳到自帶的瀏覽器上

android如何使webview不跳到自帶的瀏覽器上

一般用webview載入網址手機都會自動跳轉到自帶的瀏覽器中  ,如果為了一些效果想要不去跳轉到瀏覽器  那就要給自己的webview加上客戶端

新增客戶端程式碼

 webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });


整體程式碼如下

package com.example.popupwindow_01;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.PopupWindow;

public class MainActivity extends AppCompatActivity {
    private View view;
    private PopupWindow popupWindow;
    private WebView webView;
    private String urlString = "http://www.baidu.com";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        view = LayoutInflater.from(this).inflate(R.layout.window_layout, null);
        webView = ((WebView) view.findViewById(R.id.webView1));
        /**
         * webView 載入的時候  會跳到手機自帶的瀏覽器
         * 給自己定義個webview新增客戶端
         */
        webView.setWebViewClient(new WebViewClient() {
            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url) {
                view.loadUrl(url);
                return super.shouldOverrideUrlLoading(view, url);
            }
        });
        webView.loadUrl(urlString);
        //例項化popupwindow
        popupWindow = new PopupWindow(view, ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
        popupWindow.setBackgroundDrawable(getResources().getDrawable(R.mipmap.ic_launcher));
        //設定點選外部  是否自動關閉
        popupWindow.setFocusable(true);
        //點選外部是否關閉
        popupWindow.setOutsideTouchable(true);

    }

    public void textClick(View view) {
        if (popupWindow.isShowing()) {
            popupWindow.dismiss();
        } else {
            popupWindow.showAsDropDown(view, 0, 0);
            popupWindow.showAtLocation(view, Gravity.CENTER, 100, 100);
        }
    }
}