*
* 离线应用缓存HTML5offine Application cache
* 在服务器上添加MIME TYPE支 :text/cache-manifest
* 在Apache下添加:
* addType text/cache-manifest manifest 如果为Nginx,在添加text/cache-manifest manifest
* 或者动态的程序生成
* 1 header (content-type:text/cache-manifest;charset=UTF-8);
* ?创建NAME.manifest
* 新建清单文件manifest
*
public class MainActivity extends Activity {
//private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
final WebView wv = new WebView(this);
wv.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
if((keyCode == KeyEvent.KEYCODE_BACK) && wv.canGoBack()){
wv.goBack();
return true;
}
}
return false;
}
});
//支持js
wv.getSettings().setJavaScriptEnabled(true);
wv.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wv.getSettings().setDatabaseEnabled(true);
wv.getSettings().setDatabasePath("/data/data/com.lggblog/database");
//创建webViewCilent对象
WebViewClient client = new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
wv.loadUrl(url);
return true;
}
};
//
wv.setWebViewClient(client);
WebChromeClient wcc = new WebChromeClient(){
@Override
public boolean onJsAlert(WebView view, String url, String message,
final JsResult result) {
//自定义一个dialog 来显示网页中的对话框
Builder builder = new Builder(MainActivity.this);
builder.setMessage(message);
builder.setTitle("神马情况");
builder.setPositiveButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm(); //?
}
});
return true;
}
@Override
public boolean onJsConfirm(WebView view, String url,
String message, final JsResult result) {
Builder builder = new Builder(MainActivity.this);
builder.setTitle("确认删除?");
builder.setMessage(message);
builder.setPositiveButton("yes",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.confirm();
}
});
builder.setNeutralButton("取消",new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
result.cancel();
}
});
builder.setCancelable(false);
builder.create();
builder.show();
return true;
}
//处理提示信息 默认效果
@Override
public boolean onJsPrompt(WebView view, String url, String message,
String defaultValue, JsPromptResult result) {
return super.onJsPrompt(view, url, message, defaultValue, result);
}
//
@Override
public void onExceededDatabaseQuota(String url,
String databaseIdentifier, long quota,
long estimatedDatabaseSize, long totalQuota,
QuotaUpdater quotaUpdater) {
/*super.onExceededDatabaseQuota(url, databaseIdentifier, quota,
estimatedDatabaseSize, totalQuota, quotaUpdater)*/
quotaUpdater.updateQuota(2015721);;
}
};
wv.loadUrl("http://www.qq.com/");
wv.setWebChromeClient(wcc);
setContentView(wv);
}
}