html launcher

16
HTMLで作る Androidアプリランチャー maruyama-r

Upload: ryo-maruyama

Post on 22-May-2015

1.843 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: HTML Launcher

HTMLで作るAndroidアプリランチャー

maruyama-r

Page 2: HTML Launcher

アプリケーション構造

• WebViewとHTML/JavaScript/CSSを連携させる

Linux

Android Framework

WebView

HTML/JavaScript/CSSWebView : カスタマイズ可能なブラウザコンポーネント

Page 3: HTML Launcher

JavaScriptからJavaを呼び出す• Java

public class JavaScriptInterface { public String getString(){ return "Hello"; }}....jsInterface = new JavaScriptInterface();webView.addJavascriptInterface(jsInterface, “API”);

• JavaScriptvar msg = API.getString();

Page 4: HTML Launcher

JavaからJavaScriptを呼び出す• JavawebView.loadUrl(“javascript:putString(‘Bye’)”);

• JavaScriptfunction putString(msg){ document.write(msg);}

Page 5: HTML Launcher

アプリランチャー

Page 6: HTML Launcher

何か寂しい・・・(´・ω・`)

Page 7: HTML Launcher

そうか、アイコンが足らない!!

Page 8: HTML Launcher

アイコンつけてみました(・∀・)

Page 9: HTML Launcher

アプリランチャー(アイコン付き)

Page 10: HTML Launcher

お、ランチャーっぽい。

Page 11: HTML Launcher

アイコンの表示方法

1. JavaScriptからJavaにアプリのアイコンを要求

2. アプリのアイコンをBitmapで取得

3. BitmapをPNGに変換

4. PNGをBase64でエンコード

5. データURIスキーム用に文字を追加

6. JavaScriptに返す

Page 12: HTML Launcher

データURIスキーム

• imgタグのsrc属性に文字列で画像を指定する<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

http://en.wikipedia.org/wiki/Data_URI_scheme

Page 13: HTML Launcher

データURIスキームの使いどころ

• データサイズは4/3になってしまう

• 画像を別途HTTPリクエストしなくて良い

• 外部CSSのbackground-imageに指定するとCSSファイルとしてキャッシュされる

Page 14: HTML Launcher

工夫した点

• 一度に画像を表示すると重いので、imgのonloadを使って順番に表示

• 画像はSharedPreferencesというAndroidの機能を使ってキャッシュ

• Android2.1まではBase64が組み込まれていないので自作

• グリッド表示も作ってみた

Page 15: HTML Launcher

ダウンロード

Page 16: HTML Launcher

おわり