Android中的WebView达到一种web端可以运行app端代码的高度
来源:互联网 发布:网站源码加密授权中心 编辑:程序博客网 时间:2024/05/22 22:22
WebView代码展示演示
//直接上来展示我的类public class WebViewActivity<T> extends Activity implements View.OnClickListener { //网页Url地址 eg: https://www.bing.com/az/hprichbg/rb/QuakingAspens_ZH-CN11296287476_1920x1080.jpg protected String mUrl; //控件WebView protected WebView mWebView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置布局 setContentView(R.layout.activity_web_view); //获取bundle数据,将Url获取出来 Bundle bundle = getIntent().getExtras(); if (bundle != null) { mUrl = bundle.getString("Url"); if (mUrl != null) { Log.i("Url", mUrl); } } initView(); } private void initView() { //获取WebView mWebView = (WebView) findViewById(R.id.activity_web_view_webview); //WebChromeClient可以显示js的效果,主要辅助WebView处理JavaScript对话框,加载进度,上传文件等 mWebView.setWebChromeClient(new WebChromeClient()); //设置可以支持缩放,但是只设置此属性并不能实现手动缩放,在某些版本的手机上也只是能实现点击缩放 mWebView.getSettings().setSupportZoom(true); //设置使用默认的缩放控制器,默认是false mWebView.getSettings().setBuiltInZoomControls(false); //自适应屏幕,其实这个属性并不推荐,也是Google放弃的一个属性。此属性用来控制页面的布局,有三个类型: //SINGLE_COLUMN:把所有内容放大到webview等宽的一列中。 //NORMAL:正常显示不做任何渲染。 //NARROW_COLUMNS:可能的话让所有列的宽度不超过屏幕宽度。 mWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); //设置默认加载的可视范围是大视野范围,此属性为true表示用尽可能大的视野展示页面,一般和setUseWideViewPort搭配使用。当然大视野显示的字都很小。 mWebView.getSettings().setLoadWithOverviewMode(true); //不显示默认的+/-缩放控制View, 默认是true mWebView.getSettings().setDisplayZoomControls(false); //支持 H5 的session storage和local storage mWebView.getSettings().setDomStorageEnabled(true); //支持javascript读,写db mWebView.getSettings().setDatabaseEnabled(true); //设置js创建的db文件的路径, Api 19以后废弃,直接有webview管理 mWebView.getSettings().setDatabasePath(this.getApplicationContext().getCacheDir().getAbsolutePath()); // 启用地理定位 mWebView.getSettings().setGeolocationEnabled(true); //设置是否阻止加载网络图片,默认是`false`,如果设置为`true`,那么网络图片将不会加载.(可以先设置为true,然后再设置为false,来加快页面加载速度) mWebView.getSettings().setBlockNetworkImage(false); //设置使用宽的Viewpoint,默认是false //Android browser以及chrome for Android的设置是`true` //而WebView的默认设置是`false` //如果设置为`true`,那么网页的可用宽度为`980px`,并且可以通过 meta data来设置 //如果设置为`false`,那么可用区域和WebView的显示区域有关. mWebView.getSettings().setUseWideViewPort(true); //设置支持javascript,默认是false mWebViewDisplay.getSettings().setJavaScriptEnabled(true); //通过下面定义接口中的方法,如果涉及到一些ui界面上的处理和操作的话,需要在主线程中进行 mWebViewDisplay.addJavascriptInterface(new WebApp(), "WebApp"); // 兼容webview加载https与http混合页面时5.0以下系统图片加载不出来的问题 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { mWebViewDisplay.getSettings().setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW); } mWebViewDisplay.setWebViewClient(new WebViewClient() { //在网页上的所有加载都经过这个方法,这个函数我们可以做很多操作。比如获取url,查看url.contains(“add”),进行添加操作 @Override public boolean shouldOverrideUrlLoading(WebView view, final String url) { return true; } //开始载入页面时调用的,我们可以设定一个loading的页面,告诉用户程序在等待网络响应。 @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); } //onPageFinished(WebView view, String url) //在页面加载结束时调用, 我们可以关闭loading 条,切换程序动作。 @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); } //报告错误信息 @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { } //让webview处理https请求。 @Override public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) { } }); //如果mUrl不为空,则WebView加载网页 if (!TextUtils.isEmpty(mUrl)) { mWebView.loadUrl(mUrl); } } /** * H5通过调用back方法,就实现了返回上个Activity * * H5通过调用getVersionCode方法,就可以获取application的版本号 */ public class WebApp { //H5返回按钮调用本地Activity的finish方法,结束Activity @JavascriptInterface public void back() { finish(); } //获取Application的版本号 @JavascriptInterface public void getVersionCode() { Log.e("webApp","getVersionCode"); PackageUtils.getVersionCode(mContext); } }}
最后当然有福利了,大家可以关注一下Android小神的简书,当然怎样获取到就看你的技术了!反正我是写了,自己找
阅读全文
0 0
- Android中的WebView达到一种web端可以运行app端代码的高度
- android的HAL第一种调用hal方法中的APP层代码的实现:
- Android 获取WebView的高度
- android webView框架Web端
- Android中的多点触摸交互处理,可以达到缩放图片的效果
- Android WebView(转一):Web App、Hybrid App、Native App的差异
- 写了一个可以后台运行的Android手电筒app
- Android利用WebView开发Web App
- Android 获取WebView的内容宽度高度
- Android WebView高度显示错乱的问题
- android 获取WebView的网页高度
- android API Guides 之 web app --------------Building Web Apps in WebView(WebView与页面的绑定)
- Android下用WebView搭建Web APP,官方的JS交互(Building Web Apps in WebView)
- Android WebView中的JavaScript和java代码的交互
- Android 与WebView中的js代码的交互记录
- OC - WebView使用 之 获取 WebView 实际内容高度 及 其中一种导致WebView展示不全的bug
- Android端APP还可以这么玩儿
- 原生app与Web app的连接使者WebView
- 高考落榜学JAVA怎么样?
- unity foreach 中产生GC的问题
- Nginx + Laravel5 开发 页面缓存问题缓存问题。
- 三维重建过程与算法介绍
- HDU
- Android中的WebView达到一种web端可以运行app端代码的高度
- C++11 标准新特性:Defaulted 和 Deleted 函数
- 最大乘积
- mysql用一个表更新另一个表的方法
- iOS 手动实现modal效果,从底部弹出一个控制器
- c++基础复习之标准化输出
- 2017年如何成为全栈工程师,这些技能是你必须具备的!
- angularjs fullpage全屏滚动插件
- JavaScript重新加载与刷新