android webview应用
在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.删除保存于手机上的缓存.
- // clear the cache before time numDays
- private int clearCacheFolder(File dir, long numDays) {
- int deletedFiles = 0;
- if (dir!= null && dir.isDirectory()) {
- try {
- for (File child:dir.listFiles()) {
- if (child.isDirectory()) {
- deletedFiles += clearCacheFolder(child, numDays);
- }
- if (child.lastModified() < numDays) {
- if (child.delete()) {
- deletedFiles++;
- }
- }
- }
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- return deletedFiles;
- }
调用:clearCacheFolder(Activity.getCacheDir(), System.currentTimeMillis());//删除此时之前的缓存.
2. 打开关闭使用缓存:
优先使用缓存:
1.WebView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK);
不使用缓存:
1.WebView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);
3.在退出应用的时候加上如下代码:
- File file = CacheManager.getCacheFileBaseDir();
- if (file != null && file.exists() && file.isDirectory()) { for (File item : file.listFiles()) { item.delete();
- }
- file.delete();
- }
- context.deleteDatabase("webview.db");
- context.deleteDatabase("webviewCache.db");
android webview应用相关推荐
- Android WebView访问SSL证书网页(onReceivedSslError)
Android WebView访问https SSL证书网页,如淘宝,需要在onReceivedSslError添加SSL支持 webview.setWebViewClient(new WebView ...
- android webview java_Android Webview中调用本地java方法
在网页调用本地的分享SDK class JsObject { @JavascriptInterface public String toString() { return "injected ...
- android的webView的教程,Android WebView 应用界面开发教程
WebView组件本身就是一个浏览器实现,Android5.0增强的WebView基于Chromium M37,直接支持WebRTC.WebAudio.WebGL.开发者可以直接在WebView中使用 ...
- Android WebView 支持H5图片上传input type=file
2019独角兽企业重金招聘Python工程师标准>>> Android WebView 缓存处理 Android WebView 支持H5图片上传<input type=&qu ...
- Chrome 调试 Android WebView 网页
手机开启开发者模式,并且Usb 连接到电脑 Android webView 开启调试模式 mWebView.setWebContentsDebuggingEnabled(true); Chrome 浏 ...
- Android webview 写入cookie的解决方法以及一些属性设置
Android webview 写入cookie的解决方法以及一些属性设置 参考文章: (1)Android webview 写入cookie的解决方法以及一些属性设置 (2)https://www. ...
- android url webview,android - webview获取到当前页面的url
android - webview获取到当前页面的url 2017-10-23 08:54 访问量: 2958 分类: 技术 使用 webview.getUrl() 即可. 可以完美返回 a.com ...
- Android Webview H5 秒开方案实现
本文首发于微信公众号「玉刚说」 原文链接:Android Webview H5 秒开方案实现 前言 现在许多app都嵌入了H5页面, 然而WebView加载速度慢这个问题却一直影响着用户的体验, 所以 ...
- Android WebView 性能优化
原文出处:http://motalks.cn/2016/09/11/Android-WebView-JavaScript-3/ WebView相关阅读 Android WebView 和 javaSc ...
- Android WebView 和 javaScript的互相调用(三)
原文出处:http://motalks.cn/2016/08/27/Android-WebView-JavaScript-2/ WebView相关阅读 Android WebView 和 javaSc ...
最新文章
- IJCAI 2018所有奖项出炉:AlphaGo获奖,中国人论文占46%,华人一作近2/3
- html5如何掷色子,html5 canvas掷骰子(简单,学习基础canvas)
- mvc后台字符串转换html,c# – 从MVC Controller返回一个字符串到jQuery
- 转换php script类型,javascript如何实现值的类型转换
- php 类中调用另类,PHP return语句另类用法不止是在函数中,return语句_PHP教程
- win7驱动程序未经签名可以使用吗_手把手教你解决win7系统驱动程序签名强制禁用的设置技巧...
- 经验总结 | PyCharm 详细使用指南!
- 使用.NET为Window Mobile写自动化工具的无奈之处.
- python报错cannot import name ‘BeautifulSoup‘ from ‘bs4‘
- ReactNative绑定函数中的this
- Codeforces比赛规则梳理
- Harmony OS — Picker滑动选择器
- vivado 2017.4安装教程
- 天龙八部,数据可视化分析虚竹和童姥居然关系非同一般
- 一小时快速建立数据分析平台
- 注意力CBMA到底在网络中做了什么事
- html图片左右无缝拼接,Photoshop无缝拼接全景风光照片教程
- unicloud.dcloud
- 嵌入式软件工程师都在开发什么?
- 疫情当前,「在家远程办公」可能是最佳选择