28
ブブブブブブブブブブブブブブ ブブブブブブ 2016 年 11 年 20 年 devcussion 2016 年 12 年 03 年 年年年年年年年年年 B.G

ブラウザはつくるもんじゃない

  • Upload
    bg1-333

  • View
    166

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ブラウザはつくるもんじゃない

ブラウザはつくるもんじゃないつかうものだ

2016 年 11 月 20 日devcussion

2016 年 12 月 03 日わんくま勉強会東京

B.G

Page 2: ブラウザはつくるもんじゃない

注意

※ この発言は個人の見解であり、所属する組織の公式見解ではありません

Page 3: ブラウザはつくるもんじゃない

自己紹介 (1) HN: B.G TwitterID:

@miu_hiro_( メイン , 仕事だけだったはずが・・・。 )@bg1_333( 元メイン , 同人関係その他 )

Blog: 車輪の x 発明 ~B.G's Blog~

(http://bg1.hatenablog.com/)

Page 4: ブラウザはつくるもんじゃない

自己紹介 (2) 言語・環境など :

C++( とくに C++1x) わかりませんC# わかりません Java わかりませんWin32 マンAndroid わかりません でも最近は Android(Java) やらされてるマン

Page 5: ブラウザはつくるもんじゃない

おしらせ

Page 6: ブラウザはつくるもんじゃない

GPDWIN買いました投資しました

Page 7: ブラウザはつくるもんじゃない

GPDWIN User GroupたてましたSlack

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

GPD WIN Advent Calendar 2016

http://www.adventar.org/calendars/1529

Page 8: ブラウザはつくるもんじゃない

VizCommandhttps://github.com/bg1bgst333/VizCommand

あと、こういうのつくってる

Page 9: ブラウザはつくるもんじゃない

Android わからないマンがブラウザを作ることになったというお話

Page 10: ブラウザはつくるもんじゃない

画面どうする ?

Web ページの画面は?↓

WebView(Zinc #2 WebViewの設置)

※ 他に ChromeView 、 ChromeCustomTabs 、 Crosswalk 、あとは Chromium を載せるとか ?

Page 12: ブラウザはつくるもんじゃない

Chrome を起動させない特定のページで Chrome にリダイレクトしちゃう

WebViewClient をオーバーライドして false を返す(Zinc #3 一部のサイトでChrome

にリダイレクトする動作を防止)

Page 15: ブラウザはつくるもんじゃない

履歴は ?

ありません(WebBackForwardList はいわゆる通算の履歴ではありません )

WebBackForwardList | Android Developers

自前で DB 実装( Zinc #12 履歴機能の実装)

Page 18: ブラウザはつくるもんじゃない

ページ内検索検索したい

SearchView とか OnQueryTextListener (Zinc #18 ページ内検索の実装)

Page 19: ブラウザはつくるもんじゃない

タブブラウザにするには ?FragmentTabHost かな?

WebView 状態が保持できないし、タブを 1 つだけ削除ができない ( 全削除のみ )なので結局タブはなくして Fragmentだけに(Zinc #21 タブの削除)

(Zinc #35 タブの切り替え)

Page 22: ブラウザはつくるもんじゃない

URL フィルタリング その 3

フィルタリング API がサーバだったら非同期 HTTP リクエストしないと↓

非同期関数の同期化(syncronized わからないマン )

Page 23: ブラウザはつくるもんじゃない

URL フィルタリング その 4

変なところで stopLoading すると固まる↓

ローカル HTML を loadUrl して流してあげてその上にブロックフラグメントかぶせる↓先日試したら再現しなかったので関係なかった

Page 25: ブラウザはつくるもんじゃない

URL フィルタリング その 6

バックキーで戻るとリダイレクトのタイミング次第で表示されるときがある↓

戻る場合は shouldOverrideUrlLoading 通らないので、 onPageStarted でブロックしたほうが確実だった

Page 26: ブラウザはつくるもんじゃない

HTTP レスポンスとかエラーとかonReceivedError とか

onReceivedHttpError とかあったのか

これでリダイレクト制御すればよかったかも

Page 27: ブラウザはつくるもんじゃない

フィルタリングサーバどこがいいかな

とりあえずGoogle Safe Browsing?

( 試してないけど )(Google Safe Browsing | Google Developers)

Page 28: ブラウザはつくるもんじゃない

まとめ

他のブラウザ作ってる人どうしてるんでしょうか?Chromium 載せてるのかな・・・。

Xamarin で作る場合とかどうするんでしょうか?教えていただきたい

https://github.com/bg1bgst333/Zinc