如何在android studio中使用WebView获取所有URL

时间:2016-06-07 06:14:36

标签: java url android-studio webview android-webview

大家好日子,

我正在制作一个在Android工作室中使用WebView的简单应用程序(用于练习目的)。我希望我的应用程序能够覆盖我输入/浏览的所有URL。例如,当我打开Facebook时,它将覆盖其URL,当我登录到我的帐户时,它将再次举杯我的Facebook帐户,听起来像这样。这是我的代码。我是新事物,任何建议或帮助都将受到高度赞赏。非常感谢你。

xml布局

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                tools:context="com.example.nevigrof.ymuc.Back_order">

        <WebView

                    android:layout_weight="1"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:focusable="true"
                    android:id="@+id/webview1"/>
</RelativeLayout>

Java代码

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }

    WebView webview;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_survey_form);

        webview = (WebView) findViewById(R.id.webview1);
        webview.setWebViewClient(new MyWebViewClient());
        openURL();
    }

    private void openURL() {

        webview.requestFocus(View.FOCUS_DOWN | View.FOCUS_UP);
        webview.loadUrl("http:/https://www.facebook.com/");
        webview.getSettings().setJavaScriptEnabled(true);


        String webUrl = webview.getUrl();
        Toast.makeText(Back_order.this, webUrl, Toast.LENGTH_LONG).show();
    }
}

2 个答案:

答案 0 :(得分:1)

我想MyWebViewClient继承自WebViewClient;你应该覆盖 MyWebViewClient类中的onPageStarted和/或onPageFinished。

@Override
public void onPageFinished(WebView view, String url) {
    super.onPageFinished(view, url);
    // Toast
}

看看:

WebViewClient onPageFinished Android doc

Load an HTML document Android training

答案 1 :(得分:0)

在您的代码中,当您首次在webview中显示facebook.com时,您只会显示一次Toast。如果webview显示另一个页面(即另一个URL),您应该添加代码以通知您。您可以使用WebViewClient.shouldOverrideUrlLoading(WebView view,String url)或其他代码来检查是否加载/加载了新页面。