WebViewでJavaScriptのダイアログを表示させたい
package com.example.makki.webviewex;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Toast;
public class WebViewEx extends ActionBarActivity {
//メニューアイテムID
private static final int MENU_ITEM0 = 0;
private static final int MENU_ITEM1 = 1;
private static final int MENU_ITEM2 = 2;
private static final int MENU_ITEM3 = 3;
private WebView webView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_web_view_ex);
//Weビューの作成
webView = new WebView(this);
WebSettings settings = webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setSupportZoom(false);
//リンクをタップしたときに標準ブラウザを起動させない
webView.setWebViewClient(new WebViewClient());
//Weビューの通知リクエストの処理
webView.setWebViewClient(new WebViewClient() {
//URジャンプ時前に呼ばれる
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
//外部ブラウザではなく内部ブラウザを利用
return false;
}
//エラー時に呼ばれる
@Override
public void onReceivedError(WebView view, int errorCode,
String description, String url) {
toast("通信エラーです。");
}
});
setContentView(webView);
//HTMの読み込み
webView.loadUrl("http://hakuhin.jp/js/dialog.html#DIALOG_00");
}
//トーストの表示
private void toast(String text) {
if (text == null) text = "";
Toast.makeText(this, text, Toast.LENGTH_LONG).show();
}
//オプションメニューの生成
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_web_view_ex, menu);
//オプションメニューへのアイテム0追加
MenuItem item0 = menu.add(0, MENU_ITEM0, 0, "ログイン");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item1 = menu.add(0, MENU_ITEM1, 0, "項目1");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item2 = menu.add(0, MENU_ITEM2, 0, "項目2");
item0.setIcon(android.R.drawable.ic_menu_camera);
//オプションメニューへのアイテム0追加
MenuItem item3 = menu.add(0, MENU_ITEM3, 0, "押してはいけない");
item0.setIcon(android.R.drawable.ic_menu_camera);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int itemId = item.getItemId();
if (itemId == MENU_ITEM0) {
toast("ログインを押した");
webView.loadUrl("https://accounts.google.com/login?hl=ja");
webView.reload();
} else if (itemId == MENU_ITEM3) {
toast("ダメよダメダメ");
}
//noinspection SimplifiableIfStatement
if (itemId == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
質問です。
WebView
でJavaScriptのダイアログを表示させるには何が必要でしょうか?
プロジェクトのMinimumSDKは4.1にしてあります。本体のバージョンは5.1.1でクロームから
ダイアログは表示されます。