WebViewClient

WebViewClientを継承した派生クラスをつくることで、ロード時のさまざまな処理をカスタマイズできる・・・。

WebViewClient | Android Developers

レイアウトや文字リソースなどはそのままに、

f:id:BG1:20170109044521p:plain

Classを追加・・・。

f:id:BG1:20170109044535p:plain

WebViewClientをベースとしたCustomWebViewClientとする・・・。

CustomWebViewClient.javaは、

独自のコンストラクタには引数にContext型のcontextを取る・・・。
何かと必要になるので・・・。
そして、shouldOverrideUrlLoadingで今回は、falseを返すだけではなくて、その前にToastでurlを表示する・・・。
この時、contextが必要なのでコンストラクタでもらうようにした・・・。
ちなみに、このshouldOverrideUrlLoadingに処理が来るのは、リダイレクトでURLが変わった場合、またはWebページ内のリンクを開いたときなどである・・・。

MainActivity.javaでは、

CustomWebViewClientのコンストラクタにthisをセットして、customWCを生成・・・。
webView.setWebViewClientにcustomWCをセットしている・・・。

f:id:BG1:20170109045432p:plain

http://yahoo.co.jpをロードすると、

f:id:BG1:20170109045458p:plain

http://www.yahoo.co.jp/となり、

f:id:BG1:20170109045557p:plain

http://m.yahoo.co.jp/となっている・・・。

つまり、2回リダイレクトされているということである・・・。

Sample/android/WebViewClient/WebViewClient/src/WebViewClient at master · bg1bgst333/Sample · GitHub

WebView.setWebViewClient

普通にWebViewでロードしようとすると、サイトによってはChromeを起動してしまう場合がある・・・。

f:id:BG1:20170109022016p:plain

Googleはそのまま表示される・・・。

f:id:BG1:20170109022047p:plain

しかし、Yahoo Japanの場合、

f:id:BG1:20170109022140p:plain

Chromeを起動して、そっちでロードしてしまう・・・。

そういう場合、WebViewClientのshouldOverrideUrlLoadingをオーバーライドして、Chromeを起動せずにWebViewでロードするようにしないといけない・・・。

WebView | Android Developers

setWebViewClientは、WebViewに新たにカスタマイズしたWebViewClientをセットするメソッド・・・。

activity_main.xmlに、

urlbar、loadbutton、そしてwebview・・・。
(layout_weightなどのレイアウト周りを改めたので、今度はきっちりレイアウト・・・。)

webViewをfindViewByIdで取得したら、setWebViewClientにnewでカスタマイズしたWebViewClientをセットする・・・。
オーバーライドするのはshouldOverrideUrlLoading・・・。
ここで戻り値をfalseにするだけ・・・。
trueだと、その先のロード処理をWebViewが行わず、他のアプリに投げる・・・。
falseだと、WebViewで処理するということになっている・・・。

f:id:BG1:20170109023004p:plain

改めて、Yahoo Japanをロードすると、

f:id:BG1:20170109023056p:plain

今度はちゃんとWebViewでロードできている・・・。

Sample/android/WebView/setWebViewClient/src/WebView at master · bg1bgst333/Sample · GitHub

WebView.loadUrl

久しぶりにWebViewについて・・・。

WebView.loadUrlで指定のURLのWebページをロードできる・・・。

WebView | Android Developers

普通のWebサイトのページは、WebViewの項でロードできたが、ローカルHTMLファイルの場合はどうだろう・・・。

activity_main.xmlで、

画面いっぱいにWebView・・・。

f:id:BG1:20170109000253p:plain

assetsの下にファイルを追加・・・。

f:id:BG1:20170109000326p:plain

test.html・・・。

f:id:BG1:20170109000352p:plain

エクスプローラだと、この位置・・・。

こんな感じのテストページに・・・。

MainActivity.javaで、

loadUrlにURLを指定するのだが、"file:///android_asset/"の部分がassetsフォルダにあたる・・・。
でその下に"test.html"という感じ・・・。

f:id:BG1:20170109001031p:plain

ローカルページの場合、INTERNETのパーミッションなくても表示できた・・・。
XperiaSPでもロードできた・・・。
ただし、AndroidStudioでAndroid5以降の端末だと、URLの場所が変わったりしてロードできない場合もあるので、それはいずれやる予定・・・。

Sample/android/WebView/loadUrl/src/WebView at master · bg1bgst333/Sample · GitHub

GPDWIN 東奔西走

GPD WIN Advent Calendar 2016の25日目です・・・。

www.adventar.org

GPDWINとの出会いからこれまでを振り返ってみましょうか・・・。

最初にGPDWINの話が出始めたのは2月ですかね・・・?

butsuyoku-gadget.com

最初はこういうクラウドファンディングに出資したことなかったので戸惑いましたが、
Softbank GALAPAGOS 005SH以来の小型QWERTY端末という貴重な存在だったので思い切ってIndiegogoに申し込みました・・・。
(3月5日にはもうメール来てるな・・・。)
ゲーム目的というよりは、お布団コーディングやモバイル開発とかを想定していました・・・。

最初は、CPUにIntel AtomのZ8500だったのですが、どんどんグレードアップしていって、おお頑張ってるなあという好印象を受けましたね・・・。

www.itmedia.co.jp

Atomの開発終了によって、よりこの端末に注目が集まりましたし、もしかしたら開発中止も危ぶまれましたが、なんとか滑り込みセーフという感じで開発が進んでいきました・・・。

www.makuake.com

その後、Makuakeの技適取得組の出資が始まり、やられたーとおもいました・・・。
Indiegogoは技適の保証がないので、技適版を別に出資するとは思いませんでした・・・。
まあ、それでも後で対応してくれるかもと淡い期待をしていましたが・・・。

そろそろ出資組の発送について連絡があるのかなとおもっていた9月7日以降、それまで頻繁に来ていたIndiegogoからのメールがパッタリ来なくなりました・・・。

当初の発送予定の10月になってもメールが来ずいろんな情報が駆け巡ってましたね・・・。

中国のクラウドファンディングに先行出荷されたり、それがZ8750版(製品版はZ8700)だったり、通販にも先を越されたり・・・。
Indiegogo出資組の個人情報がxlsxファイルで流出したり・・・。

それでも10月28日、

f:id:BG1:20161226002856j:plain

遂に、GPDWINが届きました・・・。

残念ながら技適はついていませんでした・・・。
当初はGPDのほうで取得するという話で付くのかなとおもっていましたが、いろいろあって日本正式代理店の緑屋(Makuake)版以外はやはり付かなかったようで・・・。

出荷順と言い、技適と言い、対応が酷すぎてIndiegogoのコメント欄が大荒れ・・・。

でもまあ割と先にとどいたのでまあ忘れて遊ぼうと・・・。

CAPCOM:ロックマンシリーズ公式サイト|イベント・キャンペーン

これを早速入れてみましたが、キーコンフィグがうまく設定できなくて困ったり・・・。

でこのあと、仕事が忙しくて全然GPDWIN触れていないという現状・・・。

そのうち、最近のIndiegogo出荷版にはレーザー技適がなぜかついてるものが混じっていたり、Windowsが非正規版だったりとまたまた問題が出てきているようです・・・。
せっかくの貴重な小型Windows端末なのにこうトラブルが多いと困りますね・・・。

来年の一般販売版を買おうかどうか迷ってます・・・。

とつらつらと現状を書いてみました・・・。

仕事も落ち着いたので、年末年始はもうちょっと触りたいですね・・・。

最後に、

https://gpd-win-ug.slack.com/gpd-win-ug.slack.com

こんなのたてましたので何卒・・・。

現場からは以上です・・・。

カスタム牛めし

松屋 Advent Calendar 2016の24日目です。

www.adventar.org

全然準備の時間が無かったので、今回は私のカスタム牛めしを紹介・・・。

まず、前提として、もともとは大学時代に販売されていた豚めしにこのカスタムをしていました・・・。
(豚めし牛めしに比べ、脂身が多く美味しかった・・・。)
なので、できればいずれ豚めし復活してほしいなあとおもいつつ、叶わぬ夢だなあと諦めています・・・。

道玄坂上の松屋にて、まずはプレミアム牛めしのつゆ抜きを注文します・・・。

f:id:BG1:20161224221036j:plain

つゆ抜きであることは非常に重要です・・・。

僕は、ご飯が大好きなので、汁でごはんがビチャビチャするのが好きではありません・・・。
(カレーのようにそれが前提のものは除きます・・・。)

つゆ抜きにすることは、炊き立てご飯の甘味、旨み、食感を残すだけでなく、水分が少ない分、ご飯をしっかりと固形物として胃にためていくので大盛りと同じくらいの満腹感が得られます・・・。
(個人の感想です・・・。)

とはいえ、ここからはドレッシングトッピングです・・・。

f:id:BG1:20161224221726j:plain

胡麻ドレッシング・・・。
これはもともとなかったんですが、いまでは割と標準ですね・・・。

f:id:BG1:20161224221828j:plain

フレンチドレッシング・・・。
メインはこいつです・・・。
これは大学時代からの大定番の定石・・・。

f:id:BG1:20161224222153j:plain

そして、わかりにくいですが、少量のバーベキューソース・・・。

で撮り忘れましたが、黒ゴマ焙煎七味も・・・。

ちなみに、以前は黒酢もかけていました・・・。
でネギ抜きにはしませんが、ネギは先に食べて一掃してしまうのがいつものパターン・・・。

こんな感じで昼のひとときを楽しんでいるわけです・・・。

皆さんもいかがでしょうか?
現場からは以上です・・・。

TextView.hint

TextViewのhint属性を使うと、EditTextで入力されていない状態の時に、入力を促すヒント文字列を表示できる・・・。

TextView | Android Developers

こっちもなぜかEditTextじゃなくてTextView・・・。

strings.xmlに、

文字列リソースとして、edittext1_hintを定義・・・。
"ここに文字を入力してください"と表示されるように・・・。

activity_main.xmlで、

edittext1で、android:hint="@string/edittext1_hint"という感じでヒント文字列をセット・・・。

f:id:BG1:20170108162225p:plain

最初はヒント文字列が表示される・・・。

f:id:BG1:20170108162247p:plain

何か文字を入力すると、ヒント文字列は消えるが、バックスペースで全部消して空にすると、

f:id:BG1:20170108162427p:plain

また表示される・・・。

Sample/android/TextView/hint/src/TextView at master · bg1bgst333/Sample · GitHub

TextView.inputType

TextViewのinputType属性で、EditTextなどの入力に使うデフォルトのキーボード表示を指定し、入力制限などを行うことができる・・・。

TextView | Android Developers

なぜ、EditTextではなく、TextViewに用意されてるのかはわからないが・・・。

activity_main.xmlで、

EditTextを5つ用意・・・。
inputTypeに"text", "number", "textUri", "textEmailAddress", "textPassword"をそれぞれ指定・・・。

f:id:BG1:20170108153348p:plain

"text"だと日本語入力ONでqwertyキーボードが表示・・・。
(表示されるキーボードは違うかもしれないが、日本語入力ONという状態にはなると思う・・・。)

f:id:BG1:20170108153521p:plain

そのまま日本語入力可能・・・。

f:id:BG1:20170108153639p:plain

"number"だと、日本語入力ONだが、テンキーがデフォルトで表示される・・・。

f:id:BG1:20170108153720p:plain

で数字を入力できる・・・。

f:id:BG1:20170108153750p:plain

"textUri"だと、日本語入力OFFになり、英数入力のローマ字・・・。
@などの記号も出て、URLを入力しやすくなる・・・。

f:id:BG1:20170108154004p:plain

こんな感じで・・・。

f:id:BG1:20170108154029p:plain

"textEmailAddress"もメールアドレス入力しやすい英数だが、この端末だと"textUri"と違いはないみたい・・・。

f:id:BG1:20170108154123p:plain

"textPassword"の場合、パスワード入力なので*で伏字になるようにできている・・・。

Sample/android/TextView/inputType/src/TextView at master · bg1bgst333/Sample · GitHub