したがって、WebView アプリケーションがロードしている URL を監視できるようにしたいと考えています。私が達成しようとしている主なことは、WebView を特定の Web サイト内に保持すること、または少なくともユーザーがいつ Web サイトの URL を離れるかを検出できるようにすることです。
例。www.google.com のベース URL があり、ユーザーが画像をクリックすると、「http://www.google.com/imghp」が表示されますが、それでも www.google.com のベース URL があるため、ベース URL が www.google.com ではなくなった場合 (ユーザーが検索結果をクリックしてから完全に別の Web サイトに移動した場合など) を監視する方法があります。
これを行う目的は、ユーザーにダイアログまたはトーストを表示して、この WebView アプリが作成された Web サイトを離れることを知らせることです。
コード、アイデア、または提案をいただければ幸いです。
サンプルコード
@Override
public void onLoadResource(WebView view, String url)
{
if (url.equals("http://www.google.com"))
{
//do your own thing here
view.loadUrl(url);
}
else
{
AlertDialog.Builder localBuilder2 = new AlertDialog.Builder(Webview_Main.this);
localBuilder2.setTitle("Hey Wait!");
localBuilder2.setMessage("You currently are about to leave the website\n\nIf you want to stay inside this website, Please click the Go Back button below");
localBuilder2.setIcon(R.drawable.ic_launcher);
localBuilder2.setPositiveButton("Go Back",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface paramDialogInterface,
int paramInt) {
web.goBack();
}
});
localBuilder2.setNegativeButton("Continue",
new DialogInterface.OnClickListener() {
public void onClick(
DialogInterface paramDialogInterface,
int paramInt) {
}
});
localBuilder2.show();
};
super.onLoadResource(view, url);
}
ただし、上記のコードは機能せず、URL が異なる可能性があるため、警告ダイアログがポップアップし続けるだけです。