[Android] 學習筆記:取得 WebView 目前的 URL
在利用 WebView 寫 Android 上的 web-based app 時,
有時會需要知道從外面 (Android) 知道 WebView 目前瀏覽到哪個 URL 了,
好做相對應的動作~
舉例來說,我想要在如果 URL 裡面有 popup.html 和 options.html 時,
代表目前還在自己的網頁裡,按下 Back 鍵代表要離開 app,
但如果不是這樣的 URL 的話,
代表目前是在外部的網頁裡,按下 Back 鍵代表要回到上一頁,
這樣的話要怎麼做呢?
從 stackoverflow: how to get the url of the webView 這邊很快查到解答,
用 webview.getUrl() 就行了~
下面的範例程式就是用 getUrl() 取得 URL 後,判斷是否包含 options.html / popup.html,
如果是,而且可以回上一頁的話 (webview.canGoBack()),就回上一頁,
否則跳出一個警告視窗:
@Override public void onBackPressed() { String url = m_webView.getUrl(); if(m_webView.canGoBack() && url.indexOf("/options.html") < 0 && url.indexOf("/popup.html") < 0) { m_webView.goBack(); } else { new AlertDialog.Builder(MultiLibraryLoginActivity.this) .setMessage(R.string.exit_question) .setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { finish(); }}) .setNegativeButton(R.string.cancel, null) .show(); } }
(本頁面已被瀏覽過 1,893 次)