読者です 読者をやめる 読者になる 読者になる

WebSettings.getUserAgentString

WebSettingsのgetUserAgentStringでユーザエージェント文字列を取得できる・・・。

WebSettings | Android Developers

メニューアイテムの切り替えを前回やったので、メニューでユーザエージェントの切り替えができるようにする・・・。

main.xmlは、

menu_change_phoneuaとmenu_change_pcuaを追加・・・。

strings.xmlには、

PhoneとPCを選択できるように・・・。

MainActivity.javaで、

uaTypeを切り替えられるように・・・。
CHROME_PC_UAは前にハードコードしたPC用UA文字列・・・。

最初は電話用UAなので、webSettings.getUserAgentStringで取得したUA文字列をuaTypePhoneStringに・・・。
uaTypePCStringはCHROME_PC_UA・・・。
currentUAにもuaTypePhoneStringを・・・。

onCreateOptionsMenuでも、いちおうメニューアイテムの切り替えの処理・・・。
currentUAがuaTypePhoneStringなら、menu_change_phoneuaを非表示にして、menu_change_pcuaを表示にする・・・。
逆にuaTypePCStringなら、menu_change_pcuaは非表示、menu_change_phoneuaを表示・・・。
(現在の状況と逆の項目を選択できるようにする・・・。ややこしいので注意・・・。)

onPrepareOptionsMenuで、メニューボタンが押された時も、切り替えの処理・・・。

Phoneを選択したら、webSettings.setUserAgentStringでuaTypePhoneStringを設定・・・。
webView.reloadでリロード・・・。
currentUAをuaTypePhoneStringにする・・・。

PCを選択した場合も、uaTypePCStringに設定・・・。
reload・・・。
currentUAをuaTypePCStringに・・・。

f:id:BG1:20170308131221p:plain

Yahoo!をひらく・・・。

f:id:BG1:20170308131243p:plain

電話サイト・・・。
ここでメニューボタンを押すと、

f:id:BG1:20170308131311p:plain

GoBackとPCだけ表示・・・。
PCを選ぶと、

f:id:BG1:20170308131348p:plain

PCサイトに切り替わった・・・。
メニューボタンを押すと、

f:id:BG1:20170308131527p:plain

Phoneに切り替わっているので、これを押すと、

f:id:BG1:20170308131452p:plain

また電話サイトに戻った・・・。

Sample/android/WebSettings/getUserAgentString/src/WebSettings at master · bg1bgst333/Sample · GitHub