在Android的所有控件中,WebView的功能是最强大的作为直接从android.webkit.Webview实现的类可以拥有浏览器所有的功能,Webview可以让开发人员从Java转向html+js这样的方式,如果你掌握ajax可以方便通过这种方式配合远端server来实现一些内容。

Webview中设置字体,可以使用 WebView.getSettings().setDefaultFontSize() 方法,设置屏幕的缩放级别可以使用 WebView.getSettings().setDefaultZoom() 来实现。

目前在Android 2.2中已经加入了Adobe Flash Player功能,我们可以WebView.getSettings().setPluginsEnabled(true); 设置允许Gears插件来实现网页中的Flash动画显示。

Webview可以帮助我们设计内嵌专业的浏览器,相对于部分以省流量需要服务器中转的那种 html解析器来说有本质的区别,因为它们没有JavaScript脚本解析器,Android123认为未来这种方式不会有什么发展空间,代表软件Opera Mini以及国内的一些名为“XX浏览器”。

在WebView中显示AlertDialog窗口提示,这里我们通过JavaScript脚本直接互通,在一个WebView中直接显示js的alert可以重写onJsAlert方法即可。

public boolean onJsAlert(WebView view, String url, String message, final android.webkit.JsResult result) 
    {  
        new AlertDialog.Builder(myApp)  
            .setTitle("Android开发网")  
            .setMessage(message)    //从形参中传递的,同时还有String url等等
            .setPositiveButton(android.R.string.ok,  
                    new AlertDialog.OnClickListener()  
                    {  
                        public void onClick(DialogInterface dialog, int which)  
                        {  
                            result.confirm();    //从形参的结果中分析
                        }  
                    })  
            .setCancelable(false)  
            .create()  
            .show();  
 
        return true;  
    };

webview退出,播放器关闭

import java.lang.reflect.InvocationTargetException;
 
import java.lang.reflect.Method;

import android.app.Activity;
 
import android.os.Bundle;
 
import android.util.Log;
 
import android.webkit.WebSettings;
 
import android.webkit.WebSettings.PluginState;
 
import android.webkit.WebView;
 
import android.widget.FrameLayout;

public class WebviewActivity extends Activity
 
{
 
WebView playView;
 
@Override
 
public void onCreate(Bundle savedInstanceState)
 
{
 
super.onCreate(savedInstanceState);

setContentView(R.layout.webview);
 
playView = (WebView) findViewById(R.id.webviewshow);
 
WebSettings webSettings = playView.getSettings();
 
webSettings.setJavaScriptEnabled(true);
 
webSettings.setBuiltInZoomControls(true);
 
webSettings.setPluginState(PluginState.ON);
 
playView.loadUrl("file:///android_asset/swf_view.html");
 
}

private void callHiddenWebViewMethod(String name)
 
{
 
if (playView != null)
 
{
 
try
 
{
 
Method method = WebView.class.getMethod(name);
 
method.invoke(playView);
 
}
 
catch (NoSuchMethodException e)
 
{
 
Log.i("No such method: " + name, e.toString());
 
}
 
catch (IllegalAccessException e)
 
{
 
Log.i("Illegal Access: " + name, e.toString());
 
}
 
catch (InvocationTargetException e)
 
{
 
Log.d("Invocation Target Exception: " + name, e.toString());
 
}
 
}
 
}

@Override
 
protected void onPause()
 
{
 
super.onPause();
 
playView.pauseTimers();

if (isFinishing())
 
{
 
playView.loadUrl("about:blank");
 
setContentView(new FrameLayout(this));
 
}
 
callHiddenWebViewMethod("onPause");
 
}

@Override
 
protected void onResume()
 
{
 
super.onResume();
 
callHiddenWebViewMethod("onResume");
 
}

}

清空webview缓存

1.删除保存于手机上的缓存.

复制到剪贴板  Java代码
  1. // clear the cache before time numDays
  2. private int clearCacheFolder(File dir, long numDays) {
  3. int deletedFiles = 0;
  4. if (dir!= null && dir.isDirectory()) {
  5. try {
  6. for (File child:dir.listFiles()) {
  7. if (child.isDirectory()) {
  8. deletedFiles += clearCacheFolder(child, numDays);
  9. }
  10. if (child.lastModified() < numDays) {
  11. if (child.delete()) {
  12. deletedFiles++;
  13. }
  14. }
  15. }
  16. } catch(Exception e) {
  17. e.printStackTrace();
  18. }
  19. }
  20. return deletedFiles;
  21. }

调用:clearCacheFolder(Activity.getCacheDir(), System.currentTimeMillis());//删除此时之前的缓存.
  2. 打开关闭使用缓存:

  优先使用缓存:
  1.WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
  不使用缓存:
  1.WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);

  3.在退出应用的时候加上如下代码:

复制到剪贴板  Java代码
  1. File file = CacheManager.getCacheFileBaseDir();
  2.   if (file != null && file.exists() && file.isDirectory()) { for (File item : file.listFiles()) { item.delete();
  3.   }
  4.   file.delete();
  5.   }
  6.   context.deleteDatabase("webview.db");
  7.   context.deleteDatabase("webviewCache.db");

android webview应用相关推荐

  1. Android WebView访问SSL证书网页(onReceivedSslError)

    Android WebView访问https SSL证书网页,如淘宝,需要在onReceivedSslError添加SSL支持 webview.setWebViewClient(new WebView ...

  2. android webview java_Android Webview中调用本地java方法

    在网页调用本地的分享SDK class JsObject { @JavascriptInterface public String toString() { return "injected ...

  3. android的webView的教程,Android WebView 应用界面开发教程

    WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC.WebAudio.WebGL.开发者可以直接在WebView中使用 ...

  4. Android WebView 支持H5图片上传input type=file

    2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...

  5. Chrome 调试 Android WebView 网页

    手机开启开发者模式,并且Usb 连接到电脑 Android webView 开启调试模式 mWebView.setWebContentsDebuggingEnabled(true); Chrome 浏 ...

  6. Android webview 写入cookie的解决方法以及一些属性设置

    Android webview 写入cookie的解决方法以及一些属性设置 参考文章: (1)Android webview 写入cookie的解决方法以及一些属性设置 (2)https://www. ...

  7. android url webview,android - webview获取到当前页面的url

    android - webview获取到当前页面的url 2017-10-23 08:54 访问量: 2958 分类: 技术 使用 webview.getUrl() 即可. 可以完美返回  a.com ...

  8. Android Webview H5 秒开方案实现

    本文首发于微信公众号「玉刚说」 原文链接:Android Webview H5 秒开方案实现 前言 现在许多app都嵌入了H5页面, 然而WebView加载速度慢这个问题却一直影响着用户的体验, 所以 ...

  9. Android WebView 性能优化

    原文出处:http://motalks.cn/2016/09/11/Android-WebView-JavaScript-3/ WebView相关阅读 Android WebView 和 javaSc ...

  10. Android WebView 和 javaScript的互相调用(三)

    原文出处:http://motalks.cn/2016/08/27/Android-WebView-JavaScript-2/ WebView相关阅读 Android WebView 和 javaSc ...

最新文章

  1. IJCAI 2018所有奖项出炉:AlphaGo获奖,中国人论文占46%,华人一作近2/3
  2. html5如何掷色子,html5 canvas掷骰子(简单,学习基础canvas)
  3. mvc后台字符串转换html,c# – 从MVC Controller返回一个字符串到jQuery
  4. 转换php script类型,javascript如何实现值的类型转换
  5. php 类中调用另类,PHP return语句另类用法不止是在函数中,return语句_PHP教程
  6. win7驱动程序未经签名可以使用吗_手把手教你解决win7系统驱动程序签名强制禁用的设置技巧...
  7. 经验总结 | PyCharm 详细使用指南!
  8. 使用.NET为Window Mobile写自动化工具的无奈之处.
  9. python报错cannot import name ‘BeautifulSoup‘ from ‘bs4‘
  10. ReactNative绑定函数中的this
  11. Codeforces比赛规则梳理
  12. Harmony OS — Picker滑动选择器
  13. vivado 2017.4安装教程
  14. 天龙八部,数据可视化分析虚竹和童姥居然关系非同一般
  15. 一小时快速建立数据分析平台
  16. 注意力CBMA到底在网络中做了什么事
  17. html图片左右无缝拼接,Photoshop无缝拼接全景风光照片教程
  18. unicloud.dcloud
  19. 嵌入式软件工程师都在开发什么?
  20. 疫情当前,「在家远程办公」可能是最佳选择

热门文章

  1. 【正则表达式】从字符串中提取数字
  2. 数据库常用的sql语句名称大全
  3. U-Net实现医学图像分割(pytorch)
  4. 百度java面试题(一)2020整理
  5. Qt之TableView使用
  6. 华为服务器命名规则及型号分类
  7. 读H.265/HEVC编码笔记(一)
  8. Oracle数据库----------------索引
  9. APP运营推广那点事
  10. 顺序表的建立及基本操作