简介:

想要建立一个支持HTML5的Android App;

这个HTML5的程序需要使用本地存储,特别是sqllite;

用eclipse创建了一个app,这个app默认在res/layout建了两个描述界面的xml文件,一个调用另一个,下面的代码基于这种情况;

package com.example.helloweb;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.os.Build;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebSettings;
import android.webkit.WebStorage.QuotaUpdater; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // 为了支持HTML5使用数据库(sqlite)的本地存储
String databasePath = getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); if (savedInstanceState == null) {
PlaceholderFragment fragment = new PlaceholderFragment();
fragment.setDatabasePath(databasePath); getFragmentManager().beginTransaction()
.add(R.id.container, fragment)
.commit();
}
} @Override
public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
} /**
* A placeholder fragment containing a simple view.
* 被实例化,作为子UI的类
*/
public static class PlaceholderFragment extends Fragment {
String databasePath; public PlaceholderFragment() {
} // 拿到MainActivity生成的数据库路径
public void setDatabasePath(String databasePath){
this.databasePath = databasePath;
} @Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); // 通过IDE在子UI里拖进去一个webView,所以这里从rootView里查找
WebView webView = (WebView)rootView.findViewById(R.id.webView1);
webView.setWebChromeClient(this.makeWebChromeClient()); WebSettings webSettings = webView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDatabaseEnabled(true);
webSettings.setDatabasePath(this.databasePath); // 可以加载本地和网络的资源,加载网络资源需要配置权限
//webView.loadUrl("http://www.csdn.net/");
webView.loadUrl("file:///android_asset/demo.html");
return rootView;
} private WebChromeClient makeWebChromeClient(){
return new WebChromeClient(){
@Override
public void onExceededDatabaseQuota(
String url,
String databaseIdentifier,
long currentQuota,
long estimatedSize,
long totalUsedQuota,
QuotaUpdater quotaUpdater) {
quotaUpdater.updateQuota(5 * 1024 * 1024);
}
};
}
}
}

配置app访问网络的权限(在AndroidManifest.xml文件里配置)

<?xml version="1.0" encoding="utf-8"?>
<manifest> <uses-permission android:name="android.permission.INTERNET" /> <uses-sdk/>
<application></application> </manifest>

如果要使用HTML5的localStorage还是要设置databasepath和打开localStorage

webSettings.setDatabasePath(this.databasePath);
webSettings.setDomStorageEnabled(true);

支持HTML5 SqlLite的AndroidApp的更多相关文章

  1. 现在有哪些浏览器的哪些版本支持 HTML5

    现在有哪些浏览器的哪些版本支持 HTML5 1.IE IE9支持部分 IE10+支持2.Firefox Firefox3.5,3.6支持大部分 Firefox4.0+支持3.Chrome Chrome ...

  2. [C#]如何让webbrowser控件支持Html5

    最近因为项目的需要,需要研究在C#winform窗体中加载网页,和弹出提醒,但我们的网站是HTML5的,ie浏览器内核不支持,而且因为根据客户机系统的不一致,加载的ie内核可能是不同,显示的效果也会不 ...

  3. 让IE系列支持HTML5的html5shiv.js和respond.min.js

    HTML5越来越成为主流,被广大搜索引擎所使用,但IE对HTML5的支持却常被人唾弃. 解决方案有两种: 1.为网站创建多套模板,通过程序对User-Agent的判断给不同的浏览器用户显示不同的页面, ...

  4. 让ie浏览器支持html5新标签的解决方法(使用html5shiv)

    没估计错的话旧版浏览器都是不识别这些新增的标签所以都是用行内元素来处理解决的,所以,有一个解决办法的突破口就是让它变成块状元素就不会处于同一行了,这样在新旧浏览器都是可以显示同样的效果,再者就是让浏览 ...

  5. ie8及ie8以下支持html5 video标签

    html5media是一个很给力的JavaScript类库,它不依赖于任何JavaScript框架.使用了html5media之后,当浏览器不支持HTML5时,它将会自动切换成Flash模式的Flow ...

  6. 让IE8支持HTML5及canvas功能!

    微软出的IE9支持HTML5,但因为不支持XP系统,暂时我还用不了. 即使能用,现阶段如果开发HTML5页面,并考虑到兼容性问题的话,恐怕也得让自己的界面支持IE6-8吧. 首先,需要让IE支持HTM ...

  7. IE8 不支持html5 placeholder的解决方案

    IE8不支持html5 placeholder的解决方法. /** * jQuery EnPlaceholder plug * version 1.0 2014.07.01戈志刚 * by Frans ...

  8. 浏览器不支持HTML5

    有些浏览器并不支持HTML5中的新增元素,如IE8或更早版本.想要应用样式,可以头部标记<head>中加入下面JavaScript代码 <html> <head> ...

  9. 检测是否支持HTML5中的Video标签

    //检测是否支持HTML5 function checkVideo() { if (!!document.createElement('video').canPlayType) { var vidTe ...

随机推荐

  1. bindiff 4.2使用

    要求IDA 6.8 程序1与程序2混合比较图 2---------------------------------------------------------------------------- ...

  2. Qt之QtScript(一)

    C++和JavaScript相互通信.今天就学习QtScript模块吧. Qt 包含完全集成的 ECMA 标准脚本引擎.Qt Script 集成了 QObject,为脚本提供了 Qt 的信号与槽 (S ...

  3. checkbox组件

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  4. 深入理解计算机系统第二版习题解答CSAPP 2.9

    基于三元色R(红)G(绿)B(蓝)关闭(0)和打开(1),能够创建8种不同的颜色,如下: R G B 颜色 R G B 颜色 0 0 0 黑色 1 0 0 红色 0 0 1 蓝色 1 0 1 红紫色 ...

  5. 一个项目覆盖CS所有课程的可行性探究

    我们先看计算机科学有哪些子领域. 学术领域有: 计算理论 信息和编码理论 算法和数据结构 形式化方法 程序设计语言 实践领域有: 计算机体系结构 并行计算和分布式系统 实时系统和嵌入式系统 操作系统 ...

  6. 网页设定固定背景图片(抄袭自百度FM)

    这个新技能,我是从百度FM中学习到的. 在网页中,有一个id为"body-bg"的层, html代码: <div id="body-bg" style=& ...

  7. R-大数据分析挖掘(2-R爬虫)

    RCurl作者:

  8. JAVA Web.xml 加载顺序

    web.xml加载过程(步骤): 1.启动WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> ...

  9. Devexpress 使用经验 —— ASPxGridView命令行自定义按钮灵活使用

    ASPX <dx:ASPxGridView ID="ASPxGridView1" runat="server" DataSourceID="Ob ...

  10. ABI Management

    官方文档:https://developer.android.com/ndk/guides/abis.html?hl=is 关于支持指令集,在上表官方文档都表达清楚了.我们认为避免多个指令集浪费资源. ...