▼Androidメモ▼
WebViewクラスの詳細
インターフェイス
インターフェイス 説明 DownloadListener ダウンロードすべきファイルを通知 GeolocationPermissions.Callback Geolocation許可状態の変更を通知 PluginStub プラグインスタブ ValueCallback<T> 非同期処理の値を通知 WebChromeClient.CustomViewCallback カスタムビューの破棄を通知 WebIconDatabase.IconListener データベースからアイコンを通知 WebStorage.QuotaUpdater 割当を通知 WebView.PictureListener deprecated
クラス
クラス 説明 CacheManager deprecated CacheManager.CacheResult deprecated ConsoleMessage JavaScriptコンソールメッセージ CookieManager クッキーマネージャ(RFC2109仕様) CookieSyncManager クッキーの同期を管理 DateSorter 日付のソート GeolocationPermissions Geolocationのパーミッション HttpAuthHandler HTTP認証リクエスト JsPromptResult JavaScriptプロンプトリクエスト JsResult JavaScript結果 MimeTypeMap MIME-typeをマップするTwo-wayマップ SslErrorHandler SSLエラーハンドラ URLUtil URLユーティリティ WebBackForwardList Web履歴リスト WebChromeClient WebChromeクライアント WebHistoryItem Web履歴要素 WebIconDatabase Webアイコンデータベース WebResourceResponse Webリソースレスポンス WebSettings Web設定 WebStorage Webストレージ WebStorage.Origin HTML5データベースのorigin WebView Webビュー WebView.HitTestResult ヒットテスト結果 WebView.WebViewTransport Webビュートランスポート WebViewClient Webビュークライアント WebViewDatabase Webビューデータベース WebViewFragment Webビューフラグメント
Enums
Enums 説明 定数 ConsoleMessage.MessageLevel コンソールメッセージのメッセージレベル DEBUG
ERROR
LOG
TIP
WARNINGWebSettings.LayoutAlgorithm deprecated - WebSettings.PluginState プラグイン状態 OFF
ON
ON_DEMANDWebSettings.RenderPriority レンダープロパティ HIGH
LOW
NORMALWebSettings.TextSize テキストサイズ LARGER
LARGEST
NORMAL
SMALLER
SMALLESTWebSettings.ZoomDensity ズーム密度 CLOSE
FAR
MEDIUM
WebViewクラス
メソッド 説明 addJavascriptInterface(Object obj, String interfaceName) JavaScriptインタフェースの追加 canGoBack() Back可・不可の取得 canGoBackOrForward(int steps) Back/Forward可・不可の取得 canGoForward() Forward可・不可の取得 canZoomIn() ズームイン可・不可の取得 canZoomOut() ズームアウト可・不可の取得 capturePicture() ピクチャーのキャプチャ clearCache(boolean includeDiskFiles) キャッシュのクリア clearFormData() フォームデータのクリア clearHistory() 履歴のクリア clearMatches() テキストのハイライトのクリア clearSslPreferences() SSLプリファレンスのクリア clearView() ビューのクリア computeScroll() スクロールの計算 copyBackForwardList() Back/Forwardリストのコピー debugDump() deprecated destroy() WebViewの内部状態の破棄 disablePlatformNotifications() deprecated dispatchKeyEvent(KeyEvent event) キーイベントのディスパッチ documentHasImages(Message response) イメージ参照の取得
emulateShiftHeld() deprecated enablePlatformNotifications() deprecated findAddress(String addr) addressが含まれている場所の取得 findAll(String find) 検索してテキストをハイライト findNext(boolean forward) 次の検索テキストへ flingScroll(int vx, int vy) フリックによるスクロール freeMemory() 可能なメモリの解放 getCertificate() SSL証明書の取得 getContentHeight() コンテンツ高さの取得 getFavicon() Favアイコンの取得 getHitTestResult() ヒットテスト結果の取得 getHttpAuthUsernamePassword(String host, String realm) HTTP認証のユーザー名とパスワードの取得 getOriginalUrl() オリジナルURLの取得 getProgress() プログレスの取得 getScale() スケールの取得 getSettings() Web設定の取得 getTitle() タイトルの取得 getUrl() URLの取得 getVisibleTitleHeight() deprecated getZoomControls() deprecated goBack() Back goBackOrForward(int steps) Back/Forward goForward() Forward invokeZoomPicker() ズームピッカーの起動 isPrivateBrowsingEnabled() プライベートブラウジングの有効・無効の取得 loadData(String data, String mimeType, String encoding) HTMLの読み込み loadDataWithBaseURL(String baseUrl, String data, String mimeType,
String encoding, String historyUrl)HTMLの読み込み loadUrl(String url) HTMLの読み込み loadUrl(String url, Map<String, String> extraHeaders) HTMLの読み込み onChildViewAdded(View parent, View child) deprecated onChildViewRemoved(View p, View child) deprecated onCreateInputConnection(EditorInfo outAttrs) InputConnectionの生成 onGenericMotionEvent(MotionEvent event) ジェネリックモーションイベントの実装 onGlobalFocusChanged(View oldFocus, View newFocus) deprecated onKeyDown(int keyCode, KeyEvent event) キーダウン onKeyMultiple(int keyCode, int repeatCount, KeyEvent event) キー連続押し onKeyUp(int keyCode, KeyEvent event) キーアップ onPause() Webビューの一時停止 onResume() Webビューの再開 onTouchEvent(MotionEvent ev) タッチイベント onTrackballEvent(MotionEvent ev) トラックボールイベント overlayHorizontalScrollbar() 水平スクロールバーのオーバーレイの取得 overlayVerticalScrollbar() 垂直スクロールバーのオーバーレイの取得 pageDown(boolean bottom) ページダウン pageUp(boolean top) ページアップ pauseTimers() タイマーの一時停止 performLongClick() OnLongClickListenerを呼ぶ postUrl(String url, byte[] postData) POSTによるデータのロード reload() リロード removeJavascriptInterface(String interfaceName) JavaScriptインタフェースの削除 requestChildRectangleOnScreen(View child, Rect rect, boolean immediate) - requestFocus(int direction, Rect previouslyFocusedRect) フォーカスの指定 requestFocusNodeHref(Message hrefMsg) hrefへのフォーカスの指定 requestImageRef(Message msg) イメージ参照のリクエスト restorePicture(Bundle b, File src) ピクチャのリストア restoreState(Bundle inState) 状態のリストア resumeTimers() タイマーの再開 savePassword(String host, String username, String password) ユーザー名とパスワードの保存 savePicture(Bundle b, File dest) deprecated saveState(Bundle outState) 状態の保存 saveWebArchive(String filename) Webアーカイブの保存 saveWebArchive(String basename, boolean autoname,
ValueCallback<String> callback)Webアーカイブの保存 setBackgroundColor(int color) 背景色の指定 setCertificate(SslCertificate certificate) SSL証明書の指定 setDownloadListener(DownloadListener listener) ダウンロードリスナーの指定 setHorizontalScrollbarOverlay(boolean overlay) 水平スクロールバーオーバーレイの指定 setHttpAuthUsernamePassword(String host, String realm,
String username, String password)HTTP認証のユーザー名とパスワードの指定 setInitialScale(int scaleInPercent) 表示倍率の指定(デバイス画面幅*100/scaleInPercent px) setLayoutParams(ViewGroup.LayoutParams params) レイアウトパラメータの指定 setMapTrackballToArrowKeys(boolean setMap) トラックボールのキー割当の指定 setNetworkAvailable(boolean networkUp) ネットワークの有効・無効の指定 setOverScrollMode(int mode) オーバースクロールモードの指定 setPictureListener(WebView.PictureListener listener) deprecated setScrollBarStyle(int style) スクロールバースタイルの指定 setVerticalScrollbarOverlay(boolean overlay) 垂直スクロールバーオーバーレイの指定 setWebChromeClient(WebChromeClient client) WebChromeクライアントの指定 setWebViewClient(WebViewClient client) Webビュークライアントの指定 showFindDialog(String text, boolean showIme) 検索ダイアログの表示 stopLoading() ロードの停止 zoomIn() ズームイン zoomOut() ズームアウト
WebSettingsクラス
メソッド 説明 enableSmoothTransition() スムーズトランジションの有効・無効の取得 getAllowContentAccess() コンテンツURLアクセスのサポートの有効・無効の取得 getAllowFileAccess() ファイルアクセスの有効・無効の取得 getBlockNetworkImage() ネットワークイメージをブロックするかどうかの取得 getBlockNetworkLoads() 全てのネットワーク読み込みをブロックするかどうかの取得 getBuiltInZoomControls() ズームコントロールの有効・無効の取得 getCacheMode() キャッシュモードの取得
getCursiveFontFamily() 筆記体のフォントファミリー名の取得 getDatabaseEnabled() データベースストレージAPIの有効・無効の取得 getDatabasePath() データベースストレージAPIの保存先パスの取得 getDefaultFixedFontSize() デフォルトの等幅のフォントサイズの取得 getDefaultFontSize() デフォルトのフォントサイズの取得 getDefaultTextEncodingName() デフォルトのテキストエンコーディング名の取得 getDefaultZoom() デフォルトのズームの取得 getDisplayZoomControls() ズームコントロールの表示・非表示の取得 getDomStorageEnabled() DomストレージAPIの有効・無効の取得 getFantasyFontFamily() 装飾体のフォントファミリー名の取得 getFixedFontFamily() 等幅のフォントファミリー名の取得 getJavaScriptCanOpenWindowsAutomatically() JavaScriptからのウィンドウオープンの可・不可の取得 getJavaScriptEnabled() JavaScriptの有効・無効の取得 getLayoutAlgorithm() deprecated getLightTouchEnabled() ライトタッチの有効・無効の取得 getLoadWithOverviewMode() 読み込み時にページ横幅を画面幅に合わせてるかどうかの取得 getLoadsImagesAutomatically() イメージリソースの自動読み込みの有効・無効の取得 getMinimumFontSize() 最小フォントサイズの取得 getMinimumLogicalFontSize() 最小論理フォントサイズの取得 getNavDump() deprecated getPluginState() プラグインの有効・無効の取得(Youtube/Flash) getPluginsEnabled() deprecated getPluginsPath() deprecated getSansSerifFontFamily() ゴシック体のフォントファミリー名の取得 getSaveFormData() フォームデータ保存の有効・無効の取得 getSavePassword() パスワード保存の有効・無効の取得 getSerifFontFamily() 明朝体のフォントファミリー名の取得 getStandardFontFamily() 標準のフォントファミリー名の取得 getTextSize() テキストサイズの取得 getUseDoubleTree() deprecated getUseWebViewBackgroundForOverscrollBackground() deprecated getUseWideViewPort() ワイドビューポートの有効・無効の取得(trueならページ全体表示) getUserAgent() deprecated getUserAgentString() ユーザーエージェントの取得 setAllowContentAccess(boolean allow) コンテンツURLアクセスのサポートの有効・無効の指定 setAllowFileAccess(boolean allow) ファイルアクセスの有効・無効の指定 setAppCacheEnabled(boolean flag) Application Caches APIの有効・無効の指定 setAppCacheMaxSize(long appCacheMaxSize) Application Caches APIのキャッシュの最大サイズの指定 setAppCachePath(String appCachePath) Application Caches APIのキャッシュのパスの指定 setBlockNetworkImage(boolean flag) ネットワークイメージをブロックするかどうかの指定 setBlockNetworkLoads(boolean flag) 全てのネットワーク読み込みをブロックするかどうかの指定 setBuiltInZoomControls(boolean enabled) ズーム操作の有効・無効の指定 setCacheMode(int mode) キャッシュモードの指定 setCursiveFontFamily(String font) 筆記体のフォントファミリー名の指定 setDatabaseEnabled(boolean flag) データベースストレージAPIの有効・無効の指定 setDatabasePath(String databasePath) データベースストレージAPIの保存先パスの指定 setDefaultFixedFontSize(int size) デフォルトの等幅のフォントサイズの指定 setDefaultFontSize(int size) デフォルトのフォントサイズの指定 setDefaultTextEncodingName(String encoding) デフォルトのテキストエンコーディング名の指定 setDefaultZoom(WebSettings.ZoomDensity zoom) デフォルトのズームの指定 setDisplayZoomControls(boolean enabled) ズームコントロールの表示・非表示の指定 setDomStorageEnabled(boolean flag) DomストレージAPIの有効・無効の指定 setEnableSmoothTransition(boolean enable) スムーズトランジションの有効・無効の指定 setFantasyFontFamily(String font) 装飾体のフォントファミリー名の指定 setFixedFontFamily(String font) 等幅のフォントファミリー名の指定 setGeolocationDatabasePath(String databasePath) Geolocationのデータベースのパスの指定 setGeolocationEnabled(boolean flag) Geolocationの有効・無効の指定 setJavaScriptCanOpenWindowsAutomatically(boolean flag) JavaScriptからのウィンドウオープンの可・不可の指定 setJavaScriptEnabled(boolean flag) JavaScriptの有効・無効の指定 setLayoutAlgorithm(WebSettings.LayoutAlgorithm l) deprecated setLightTouchEnabled(boolean enabled) ライトタッチの有効・無効の指定 setLoadWithOverviewMode(boolean overview) 読み込み時にページ横幅を画面幅に合わせてるかどうかの指定 setLoadsImagesAutomatically(boolean flag) イメージリソースの自動読み込みの有効・無効の指定 setMinimumFontSize(int size) 最小フォントサイズの指定 setMinimumLogicalFontSize(int size) 最小論理フォントサイズの指定 setNavDump(boolean enabled) deprecated setNeedInitialFocus(boolean flag) requestFocus(int,Rect)によるフォーカスの有効・無効の指定 setPluginState(WebSettings.PluginState state) プラグインの有効・無効の指定(Youtube/Flash) setPluginsEnabled(boolean flag) deprecated setPluginsPath(String pluginsPath) deprecated setRenderPriority(WebSettings.RenderPriority priority) レンダースレッドのプロパティの指定 setSansSerifFontFamily(String font) ゴシック体のフォントファミリー名の指定 setSaveFormData(boolean save) フォームデータ保存の有効・無効の指定 setSavePassword(boolean save) パスワード保存の有効・無効の指定 setSerifFontFamily(String font) 明朝体のフォントファミリー名の指定 setStandardFontFamily(String font) 標準のフォントファミリー名の指定 setSupportMultipleWindows(boolean support) マルチウィンドウの有効・無効の指定 setSupportZoom(boolean support) ズームのサポートの有効・無効の指定 setTextSize(WebSettings.TextSize t) テキストサイズの指定 setUseDoubleTree(boolean use) deprecated setUseWebViewBackgroundForOverscrollBackground(boolean view) deprecated setUseWideViewPort(boolean use) ワイドビューポートの有効・無効の指定(trueならページ全体表示) setUserAgent(int ua) deprecated setUserAgentString(String ua) ユーザーエージェントの指定 supportMultipleWindows() マルチウィンドウの有効・無効の取得 supportZoom() ズームのサポートの有効・無効の取得
WebViewClientクラス
メソッド 説明 doUpdateVisitedHistory(WebView view, String url, boolean isReload) 履歴更新時に呼ばれる onFormResubmission(WebView view, Message dontResend, Message resend) データを再送する必要がある場合に呼ばれる onLoadResource(WebView view, String url) リソース読み込み時に呼ばれる onPageFinished(WebView view, String url) ページ読み込み完了時に呼ばれる onPageStarted(WebView view, String url, Bitmap favicon) ページ読み込み開始時に呼ばれる onReceivedError(WebView view, int errorCode, String description, String failingUrl) エラー時に呼ばれる onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler,
String host, String realm)HTTP認証リクエスト受信時に呼ばれる onReceivedLoginRequest(WebView view, String realm, String account,
String args)ログインリクエスト受信時に呼ばれる onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) SSLエラー時に呼ばれる onScaleChanged(WebView view, float oldScale, float newScale) スケール変更時に呼ばれる onTooManyRedirects(WebView view, Message cancelMsg, Message continueMsg) deprecated onUnhandledKeyEvent(WebView view, KeyEvent event) Webビューでキーがハンドルされない時呼ばれる shouldInterceptRequest(WebView view, String url) リソース要求開始前に呼ばれる shouldOverrideKeyEvent(WebView view, KeyEvent event) キーイベント通知前に呼ばれる shouldOverrideUrlLoading(WebView view, String url) URLロード前に呼ばれる
WebChromeClientクラス
メソッド 説明 getDefaultVideoPoster() 非再生時、video要素に表示する画像の取得 getVideoLoadingProgressView() video要素の再生開始時に表示するプログレスの取得 getVisitedHistory(ValueCallback<String[]> callback) リンク色に利用する履歴要素郡の取得時に呼ばれる onCloseWindow(WebView window) ウィンドウクローズ時に呼ばれる onConsoleMessage(String message, int lineNumber, String sourceID) コンソールメッセージ通知時に呼ばれる onConsoleMessage(ConsoleMessage consoleMessage) コンソールメッセージ通知時に呼ばれる onCreateWindow(WebView view, boolean dialog, boolean userGesture, Message resultMsg) 新規ウィンドウ生成時に呼ばれる onExceededDatabaseQuota(String url, String databaseIdentifier, long currentQuota,
long estimatedSize, long totalUsedQuota, WebStorage.QuotaUpdater quotaUpdater)originのquotaの更新時に呼ばれる onGeolocationPermissionsHidePrompt() Geolocationパーミッション非表示時に呼ばれる onGeolocationPermissionsShowPrompt(String origin,
GeolocationPermissions.Callback callback)Geolocationパーミッション表示時に呼ばれる onHideCustomView() カスタムビューの非表示時に呼ばれる onJsAlert(WebView view, String url, String message, JsResult result) アラートダイアログ(OK)表示時に呼ばれる onJsBeforeUnload(WebView view, String url, String message, JsResult result) ダイアログ表示にに呼ばれる onJsConfirm(WebView view, String url, String message, JsResult result) コンファームダイアログ(OK/Cancel)表示時に呼ばれる onJsPrompt(WebView view, String url, String message, String defaultValue,
JsPromptResult result)プロンプトダイアログ(OK/Cancel/テキスト)表示時に呼ばれる onJsTimeout() JavaScriptのタイムアウト時に呼ばれる onProgressChanged(WebView view, int newProgress) プログレス進行時に呼ばれる(newProgressは0-100) onReachedMaxAppCacheSize(long spaceNeeded, long totalUsedQuota,
WebStorage.QuotaUpdater quotaUpdater)Application Caches APIのキャッシュサイズが最大値に到達した時に呼ばれる onReceivedIcon(WebView view, Bitmap icon) アイコン受信時に呼ばれる onReceivedTitle(WebView view, String title) タイトル受信時に呼ばれる onReceivedTouchIconUrl(WebView view, String url, boolean precomposed) タッチアイコンURL受信時に呼ばれる onRequestFocus(WebView view) フォーカス取得時に呼ばれる onShowCustomView(View view, WebChromeClient.CustomViewCallback callback) カスタムビュー表示時に呼ばれる
WebViewDatabaseクラス
メソッド 説明 getInstance(Context context) インスタンスの取得 clearFormData() フォームデータのクリア clearHttpAuthUsernamePassword() HTTP認証のユーザー名とパスワードのクリア clearUsernamePassword() ユーザー名とパスワードのクリア hasFormData() フォームデータを保持しているかどうか hasHttpAuthUsernamePassword() HTTP認証のユーザー名とパスワードを保持しているかどうか hasUsernamePassword() ユーザー名とパスワードを保持しているかどうか
WebStorageクラス
メソッド 説明 deleteAllData() 全データの削除 deleteOrigin(String origin) originの削除 getInstance() インスタンスの取得 getOrigins(ValueCallback<Map> callback) originの取得 getQuotaForOrigin(String origin, ValueCallback<Long> callback) originのquotaの取得 getUsageForOrigin(String origin, ValueCallback<Long> callback) originのusageの取得 setQuotaForOrigin(String origin, long quota) originのquotaの指定
各種設定
メソッド 説明 リンククリック時に内部ブラウザでオープン
(標準設定ではリンククリック時に
Webブラウザを起動してリンク先を開く)webView.setWebViewClient(new WebViewClient(){ public boolean shouldOverrideUrlLoading(WebView view,String url) { return false; } });スクロールバーの指定 webView.setScrollBarStyle(WebView.SCROLLBARS_INSIDE_OVERLAY); webView.setVerticalScrollbarOverlay(true); webView.setHorizontalScrollBarEnabled(false);JavaScriptの有効化 webSettings.setJavaScriptEnabled(true);Flashの有効化 webSettings.setJavaScriptEnabled(true); webSettings.setPluginState(WebSettings.PluginState.ON);Flashの上へのビュー配置
瓶詰堂日記getWindow().setBackgroundDrawable(null); WindowManager.LayoutParams lp= (WindowManager.LayoutParams)getWindow().getDecorView().getLayoutParams(); lp.type=WindowManager.LayoutParams.TYPE_APPLICATION; getWindowManager().removeView(getWindow().getDecorView()); getWindowManager().addView(getWindow().getDecorView(),lp);Geolocationの有効化 webSettings.setGeolocationEnabled(true); webView.setWebChromeClient(new WebChromeClient() { public void onGeolocationPermissionsShowPrompt(String origin,Callback callback) { super.onGeolocationPermissionsShowPrompt(origin,callback); callback.invoke(origin,true,false); } });HTML5 Web Storagの有効化
webSettings.setJavaScriptEnabled(true); webSettings.setDomStorageEnabled(true); File databasePath=new File(getCacheDir(),webStoragePath); webSettings.setDatabasePath(databasePath.toString()); webView.setWebChromeClient(new WebChromeClient() { public void onExceededDatabaseQuota(..., QuotaUpdater quotaUpdater) { quotaUpdater.updateQuota(5*1024*1024); } });HTML5 Web SQLデータベースの有効化 webSettings.setJavaScriptEnabled(true); webSettings.setDatabaseEnabled(true); File databaseDir=new File(getCacheDir(),webSqlDatabasePath); databaseDir.mkdirs(); webSettings.setDatabasePath(databaseDir.toString()); webView.setWebChromeClient(new WebChromeClient() { public void onExceededDatabaseQuota(..., QuotaUpdater quotaUpdater) { quotaUpdater.updateQuota(5*1024*1024); } });HttpClientでログイン処理を行い
以降はWebViewで操作
chakimarのプログラミング日記private WebView mWebView; @Override public void onCreate(Bundle bundle) { super.onCreate(bundle); mWebView=new WebView(this); mWebView.setWebViewClient(new WebViewClient()); mWebView.setWebChromeClient(new WebChromeClient()); mWebView.getSettings().setJavaScriptEnabled(true); setContentView(mWebView); //WebViewで使うcookieの準備 CookieSyncManager.createInstance(this); CookieSyncManager.getInstance().startSync(); CookieManager.getInstance().setAcceptCookie(true); CookieManager.getInstance().removeExpiredCookie(); //HttpClientの準備 DefaultHttpClient httpClient; httpClient=new DefaultHttpClient(); httpClient.getParams().setParameter(ClientPNames.COOKIE_POLICY,CookiePolicy.BROWSER_COMPATIBILITY); httpClient.getParams().setParameter("http.connection.timeout",5000); httpClient.getParams().setParameter("http.socket.timeout",3000); HttpPost httppost=new HttpPost("認証用のアドレス"); ListnameValuePair=new ArrayList (); nameValuePair.add(new BasicNameValuePair("ユーザーキーの名前","ユーザー名")); nameValuePair.add(new BasicNameValuePair("パスワードキーの名前","パスワード")); //ログイン処理 try { httppost.setEntity(new UrlEncodedFormEntity(nameValuePair)); HttpResponse response=httpClient.execute(httppost); ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream(); response.getEntity().writeTo(byteArrayOutputStream); } catch (Exception e) { } //HttpClientで得たCookieの情報をWebViewでも利用できるようにする CookieStore cookieStr=httpClient.getCookieStore(); cookieStr.clearExpired(new java.util.Date()); List cookies=cookieStr.getCookies(); CookieManager cookieManager=CookieManager.getInstance(); for (Cookie cookie : cookies) { String cookieString=cookie.getName()+"="+cookie.getValue(); cookieManager.setCookie("ドメイン名", cookieString); CookieSyncManager.getInstance().sync(); } //ログイン状態で画面にアクセス mWebView.loadUrl("トップページのアドレス"); } @Override protected void onDestroy() { super.onDestroy(); CookieManager cookieManager=CookieManager.getInstance(); cookieManager.removeAllCookie(); } アラートの実装
webView.getSettings().setJavaScriptEnabled(true); webView.setWebChromeClient(new WebChromeClient() { //アラートダイアログの表示 public boolean onJsAlert(WebView view,String url, String message,final JsResult result){ AlertDialog.Builder ad=new AlertDialog.Builder(context); ad.setMessage(message); ad.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { result.confirm(); } }); ad.show(); return true; } //コンファームダイアログの表示 public boolean onJsConfirm(WebView view,String url, String message,final JsResult result) { AlertDialog.Builder ad=new AlertDialog.Builder(context); ad.setMessage(message); ad.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { result.confirm(); } }); ad.setNegativeButton("キャンセル",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { result.cancel(); } }); ad.show(); return true; } //プロンプトダイアログの表示 public boolean onJsPrompt(WebView view,String url, String message, String defaultValue,final JsPromptResult result) { AlertDialog.Builder ad=new AlertDialog.Builder(context); final EditText editText=new EditText(context); ad.setView(editText); ad.setMessage(message); ad.setPositiveButton("OK",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { result.confirm(editText.getText().toString()); } }); ad.setNegativeButton("キャンセル",new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog,int which) { result.cancel(); } }); ad.show(); return true; } });新規ウィンドウで開く webSettings.setJavaScriptCanOpenWindowsAutomatically(true); webSettings.setSupportMultipleWindows(true);
webView.setWebChromeClient(new WebChromeClient() { public boolean onCreateWindow(WebView view, boolean dialog, boolean userGesture,Message resultMsg) { WebView temp=new WebView(context); temp.getWebSettings().setJavaScriptCanOpenWindowsAutomatically(true); temp.getWebSettings().setSupportMultipleWindows(true); ((WebView.WebViewTransport)resultMsg.obj).setWebView(temp); resultMsg.sendToTarget(); return true; } });アセットHTMLの読み込み webView.loadUrl("file:///android_asset/index.html");読込時にページ横幅を画面幅に合わせる webSettings.setLoadWithOverviewMode(true); webSettings.setUseWideViewPort(true);キャッシュのクリアとWebViewの破棄 public void onPause(){ super.onPause(); mWebView.clearCache(true); mWebView.clearHistory(); mWebView.clearMatches(); } protected void onDestroy() { super.onDestroy(); mWebView.destroy(); }
−戻る−