Android

WebView.HitTestResult

画像であっても、imgのsrcがファイルとは限らない。 hr.getExtraでURLが取れるので確認してみる。WebView.HitTestResult | Android DevelopersMainActivityで、hr.getExtraで取得したURLをToast表示する。タイプはIMAGE_TYPE。jpgファイルのURLがsrcに指定さ…

WebView.getHitTestResult

WebView.getHitTestResultを使うことによって、WebViewでクリック(タッチ)またはロングクリック(長押し)されたオブジェクトが何なのかを識別できる。WebView | Android DevelopersMainActivityのonCreateで、implementsにOnLongClickListenerを追加。 webVie…

View.OnLongClickListener

長押しを検知するにはView.OnLongClickListenerを使う。View.OnLongClickListener | Android DevelopersMainActivity.javaに、button1.setOnClickListenerでView.OnClickListenerのインスタンスを渡す。 Toastで"Clicked!"と表示。 次に、button1.setOnLongC…

WebHistoryItem

WebHistoryItemにもいろいろ機能はある。WebHistoryItem | Android Developers前回はURLだったが、今回はタイトルも取得する。hi.getTitleでタイトルを取得してToast表示。タイトルもこの通り。Sample/android/WebHistoryItem/WebHistoryItem/src/WebHistory…

WebBackForwardList

WebBackForwardList自体にもいろいろ機能はある。WebBackForwardList | Android Developers実は、前回のスクリーンショットでは、ToastでロードしたURLを表示していたが、実際に動かしていたSampleソースは今回のもの。onPageFinishedのurlではなく、bfList.…

WebView.copyBackForwardList

WebView.copyBackForwardListで、WebViewが生成されてから、ロードしたURLの一覧(BackForwardList)を取得できる。 (これは通算の履歴ではなく、これまでロードしたURLがスタック上に積み重なっていく。そのため、戻る度に、戻る前のURLは一覧から消える。(正…

WebSettings.getUserAgentString

WebSettingsのgetUserAgentStringでユーザエージェント文字列を取得できる・・・。WebSettings | Android Developersメニューアイテムの切り替えを前回やったので、メニューでユーザエージェントの切り替えができるようにする・・・。main.xmlは、menu_chang…

Activity.onPrepareOptionsMenu

onPrepareOptionsMenuは、メニューボタン(3点リーダアイコンの)が押された時に発生するハンドラで、メニュー表示前の準備段階の処理を行える・・・。Activity | Android Developers最初のアイテムの選択によって以降のメニューアイテムの表示/非表示切り替え…

WebSettings.setUserAgentString

WebSettingsのsetUserAgentStringで独自のユーザエージェント文字列を設定できる・・・。WebSettings | Android DevelopersPCサイトブラウザモードを実装するのに使う・・・。PC版Chromeのユーザエージェント文字列を、Google Chrome-49.0.2623.87でのUser A…

WebSettings.setJavaScriptEnabled

WebSettingsのsetJavaScriptEnabledでJavaScriptを有効にできる・・・。WebSettings | Android Developers現状、こんな警告が出ているので、いい加減JavaScriptを有効にする・・・。MainActivity.javaで、onCreateで、webView.getSettingsでwebSettingsを取…

SslErrorHandler.cancel

onReceivedSslErrorが発生し、ユーザがロードをキャンセルしたい場合は、SslErrorHandler.cancelを使う・・・。SslErrorHandler | Android DevelopersCustomWebViewClient.javaで、ポジティブボタンの"Proceed"に加えて、ネガティブボタンの"Cancel"も追加・…

SslErrorHandler.proceed

onReceivedSslErrorで、SSLエラーを拾えるのはわかったが、そのままだとページを表示できない・・・。 ユーザの許可を得て、ロードを薦めるには、SslErrorHandler.proceedを使う・・・。SslErrorHandler | Android Developers今回はダイアログを表示し、Proc…

WebSettings

WebSettingsは、WebViewのさまざまな設定を持つクラス・・・。WebSettings | Android Developersとりあえずユーザエージェントを取得してみる・・・。onPageFinishedで、view.getSettingsでwebSettingsを取得・・・。 webSettings.getUserAgentStringでユー…

WebViewClient.onReceivedSslError

onReceivedSslErrorは、SSLエラーが発生した時のハンドラ・・・。WebViewClient | Android DevelopersSSLエラーは普通のエラーと違って、こちらに来るらしい・・・。CustomWebViewClient.javaで、 // エラーが発生した時. @Override public void onReceivedE…

WebViewClient.onReceivedError

onReceivedErrorは、エラーが発生した時のハンドラ・・・。WebViewClient | Android Developersエラーが発生した時には、エラーページへ遷移し、トーストでエラーコードと説明を表示してみる・・・。assetsフォルダの下にerror.htmlというファイルを作成し、…

WebChromeClient.onProgressChanged

onProgressChangedは、ロードの進捗の変化があった時に発生するハンドラ・・・。WebChromeClient | Android Developers今回はプログレスバーで進捗を表示する・・・。activity_main.xmlに、ProgressBarを追加・・・。CustomWebViewClient.javaで、コンストラ…

WebViewClient.onPageFinished

onPageFinishedは、ページのロードが終了した時のハンドラ・・・。WebViewClient | Android Developersこれまで、TextViewのprogressTextViewで進捗を表示していたが、ロードしていない時は非表示、ロードを開始してからは表示状態にして、ロードが完了した…

WebViewClient.onPageStarted

onPageStartedは、ページのロードが開始された時のハンドラ・・・。WebViewClient | Android DevelopersshouldOverrideUrlLoadingだと、バックキーで戻って来た時に呼ばれないことがあるので、こちらでURLの更新をする・・・。CustomWebViewClient.javaで、s…

Activity.onBackPressed

バックキーでもgoBackで戻れるようにしたいが、そのためにはバックキーが押された時の動作を変えないといけない・・・。Activity | Android DevelopersonBackPressedをオーバーライドして、バックキーの動作を変える・・・。MainActivity.javaで、canGoBack…

WebView.canGoBack

canGoBackは、goBackで前のページに戻れるかどうかをチェックする・・・。WebView | Android Developers当然、1つ目のページからさらに前に戻ることはできないので、トーストで"戻れません!"と表示してみる・・・。MainActivity.javaで、webView.canGoBackが…

WebView.goBack

goBackで一つ前のページに戻ることができる・・・。WebView | Android Developersresの下にmenuフォルダつくって、その下にmain.xmlを用意し、今回はメニューにgoBackのアイテムを追加・・・。strings.xmlは、"GoBack"と表示されるアイテム・・・。MainActiv…

WebChromeClient

今度は、WebChromeClientを継承したCustomWebChromeClientクラスを定義して、やってみる・・・。WebChromeClient | Android DevelopersClass追加で、で、コンストラクタで、contextからactivityにキャストして、findViewByIdで、progressTextViewを取得・・…

WebView.setWebChromeClient

WebChromeClientも、WebViewのカスタマイズに関するオブジェクトだが、こちらはWebページのロード進捗や、faviconなど、UIに関するものが多い・・・。setWebChromeClientで新たにWebChromeClient派生のオブジェクトをセットして、Webページのロード進捗を表…

WebViewClient.shouldOverrideUrlLoading

shouldOverrideUrlLoadingは、ロードするURLが変わった時に呼ばれる・・・。WebViewClient | Android Developersこれまでは、リンクをクリックしたり、リダイレクトが発生しても、URLバーのURLがそのままだったが、今回はURLが変わるたびに更新する・・・。C…

WebViewClient

WebViewClientを継承した派生クラスをつくることで、ロード時のさまざまな処理をカスタマイズできる・・・。WebViewClient | Android Developersレイアウトや文字リソースなどはそのままに、Classを追加・・・。WebViewClientをベースとしたCustomWebViewCli…

WebView.setWebViewClient

普通にWebViewでロードしようとすると、サイトによってはChromeを起動してしまう場合がある・・・。Googleはそのまま表示される・・・。しかし、Yahoo Japanの場合、Chromeを起動して、そっちでロードしてしまう・・・。そういう場合、WebViewClientのshould…

WebView.loadUrl

久しぶりにWebViewについて・・・。WebView.loadUrlで指定のURLのWebページをロードできる・・・。WebView | Android Developers普通のWebサイトのページは、WebViewの項でロードできたが、ローカルHTMLファイルの場合はどうだろう・・・。activity_main.xml…

TextView.hint

TextViewのhint属性を使うと、EditTextで入力されていない状態の時に、入力を促すヒント文字列を表示できる・・・。TextView | Android DevelopersこっちもなぜかEditTextじゃなくてTextView・・・。strings.xmlに、文字列リソースとして、edittext1_hintを…

TextView.inputType

TextViewのinputType属性で、EditTextなどの入力に使うデフォルトのキーボード表示を指定し、入力制限などを行うことができる・・・。TextView | Android Developersなぜ、EditTextではなく、TextViewに用意されてるのかはわからないが・・・。activity_main…

TextView.textStyle

ボールド(太字)、イタリック(斜体)、ぐらいの文字スタイルなら、textStyleで設定できる・・・。TextView | Android Developersactivity_main.xmlで、textview1にはnormal(通常)、textview2にはbold(太字)、textview3にはitalic(斜体)をセット・・・。真ん中…