2011年1月5日水曜日

AndroidのWebViewでHTML5 Web Database

はまったはまった。

WebViewでHTML5のWeb Database試したかっただけなのに。
2日間で計8時間くらいかかりました。(--;

まとめ。

以下、動作したActivityのmainクラスそのまま。


package my.app.travelNote;


import java.io.File;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.util.Log;
import android.webkit.WebChromeClient;
import android.webkit.WebSettings;
import android.webkit.WebStorage;
import android.webkit.WebStorage.QuotaUpdater;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class main extends Activity {

WebView mWebView;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        String databasePath = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();

        WebSettings settings = mWebView.getSettings();
        settings.setJavaScriptEnabled(true);
        settings.setJavaScriptCanOpenWindowsAutomatically(true);
        settings.setDatabaseEnabled(true);
        settings.setDatabasePath(databasePath);
      
        mWebView.setWebChromeClient(new MyWebChromeClient());
        mWebView.loadUrl("file:///android_asset/html/index.html");
    }
    final class MyWebChromeClient extends WebChromeClient {
     @Override
public void onExceededDatabaseQuota(String url,
String databaseIdentifier, long currentQuota,
long estimatedSize, long totalUsedQuota,
QuotaUpdater quotaUpdater) {
            quotaUpdater.updateQuota(10 * 1000 * 1000);
}
}


また、登録したデータベースを確認するには
eclipseで


[Window]-[Show View]-[Other]-[File Explorer]でFile Explorerビューを表示。



0 件のコメント:

コメントを投稿