『VizCommand』も改めて組み直し・・・。
UIの構成が難しいが、機能優先にしたいところ・・・。
Win32プロジェクトの空のプロジェクトでWinMain.cppを追加して、
とし、バージョン情報も、
として、
ウィンドウ表示・・・。
『VizCommand』も改めて組み直し・・・。
UIの構成が難しいが、機能優先にしたいところ・・・。
Win32プロジェクトの空のプロジェクトでWinMain.cppを追加して、
とし、バージョン情報も、
として、
ウィンドウ表示・・・。
『ObjeqtNote』も作り直し・・・。
『Aoi』とどう役割分担するか、まだ悩み中・・・。
こちらはどんどん機能載せていきたい・・・。
Win32プロジェクトの空のプロジェクトでWinMain.cppを追加して、
と、『Aoi』とほぼ一緒・・・。
バージョン情報も、
こんな感じで・・・。
ただ、ウィンドウを表示しているだけ・・・。
新年(ブログの日付上)1発目は、Application開発の仕切り直しから・・・。
テキストエディタ『Aoi』の作り直し・・・。
プロジェクトの作成・・・。
gitのレポジトリのトップにプロジェクトを作るように変更・・・。
でも変わらず空のプロジェクト・・・。
ソースの追加・・・。
WinMain.cppに、
いつも通りのWinMain内でウィンドウ表示・・・。
今回はリソースも追加・・・。
バージョン情報もつけておく・・・。
コードネームもOsakiに変更・・・。
ただのウィンドウ表示・・・。
今度は、WebChromeClientを継承したCustomWebChromeClientクラスを定義して、やってみる・・・。
WebChromeClient | Android Developers
Class追加で、
で、
コンストラクタで、contextからactivityにキャストして、findViewByIdで、progressTextViewを取得・・・。
あとは、onProgressChangedでprogressTextView.setTextでnewProgressに更新・・・。
MainActivity.javaは、
CustomWebViewClientのcustomWVC、CustomWebChromeClientのcustomWCCをそれぞれWebViewにセット・・・。
(ちょっと名前変えた・・・。)
すっきりした・・・。
まあ、動作は変わらない・・・。
完了した時はこんな感じ・・・。
WebChromeClientも、WebViewのカスタマイズに関するオブジェクトだが、こちらはWebページのロード進捗や、faviconなど、UIに関するものが多い・・・。
setWebChromeClientで新たにWebChromeClient派生のオブジェクトをセットして、Webページのロード進捗を表示するようにカスタマイズする・・・。
activity_main.xmlは、
webviewの上にprogresstextviewというTextViewを設置・・・。
findViewByIdでprogressTextViewを取得・・・。
webView.setWebChromeClientにnewで生成したWebChromeClient派生のクラスオブジェクトをセット・・・。
onProgressChangedをオーバーライド・・・。
渡される進捗newProgressに"%"を付けてprogressTextViewにセットする・・・。
最初はURLバーの下に何も表示されていないが、ロードすると、
ロードが進むたびに進捗率が表示される・・・。
この時点で50%・・・。
でロードが完了すると100%になる・・・。
Sample/android/WebView/setWebChromeClient/src/WebView at master · bg1bgst333/Sample · GitHub
shouldOverrideUrlLoadingは、ロードするURLが変わった時に呼ばれる・・・。
WebViewClient | Android Developers
これまでは、リンクをクリックしたり、リダイレクトが発生しても、URLバーのURLがそのままだったが、今回はURLが変わるたびに更新する・・・。
CustomWebViewClient.javaで、
コンストラクタでcontextをActivity型activityにキャストして、activity.findViewByIdでurlBarを取得・・・。
あとはshouldOverrideUrlLoadingに来るたび、urlBar.setTextでurlをセットすることで更新される・・・。
入力時は、http://yahoo.co.jpだが、
http://www.yahoo.co.jp/を経て(一瞬なので流石にキャプチャは取れない)、http://m.yahoo.co.jp/になった・・・。
さらにスポナビをクリックすると、
http://m.sports.yahoo.co.jp/になる・・・。
WebViewClientを継承した派生クラスをつくることで、ロード時のさまざまな処理をカスタマイズできる・・・。
WebViewClient | Android Developers
レイアウトや文字リソースなどはそのままに、
Classを追加・・・。
WebViewClientをベースとしたCustomWebViewClientとする・・・。
CustomWebViewClient.javaは、
独自のコンストラクタには引数にContext型のcontextを取る・・・。
何かと必要になるので・・・。
そして、shouldOverrideUrlLoadingで今回は、falseを返すだけではなくて、その前にToastでurlを表示する・・・。
この時、contextが必要なのでコンストラクタでもらうようにした・・・。
ちなみに、このshouldOverrideUrlLoadingに処理が来るのは、リダイレクトでURLが変わった場合、またはWebページ内のリンクを開いたときなどである・・・。
MainActivity.javaでは、
CustomWebViewClientのコンストラクタにthisをセットして、customWCを生成・・・。
webView.setWebViewClientにcustomWCをセットしている・・・。
http://yahoo.co.jpをロードすると、
http://m.yahoo.co.jp/となっている・・・。
つまり、2回リダイレクトされているということである・・・。
Sample/android/WebViewClient/WebViewClient/src/WebViewClient at master · bg1bgst333/Sample · GitHub