在开发中经常在更多页面中用到WebView来显示一个网页,这个网页里面放有下载地址或者链接到别的网页等等。
效果如下:
这个示例很简单,代码中都有注释。下面直接上代码:
public class MainActivity extends Activity {
private static final String URL = "http://demo.91yong.com/mobile/moreApp.jsp?type=2";
private WebView wvShow;
private ProgressBar pbLoading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
wvShow = (WebView) findViewById(R.id.web_view);
pbLoading = (ProgressBar) findViewById(R.id.pb_loading);
wvShow.setDownloadListener(new DownloadListener() {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) {
// 监听下载功能,当用户点击下载链接的时候,直接调用系统的浏览器来下载
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
});
wvShow.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
//页面加载完毕
super.onPageFinished(view, url);
if (pbLoading != null && pbLoading.getVisibility() == View.VISIBLE) {
pbLoading.setVisibility(View.GONE);//进度条不可见
}
}
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
//页面开始加载
super.onPageStarted(view, url, favicon);
if (pbLoading != null && pbLoading.getVisibility() == View.INVISIBLE) {
pbLoading.setVisibility(View.VISIBLE);//进度条可见
}
}
});
wvShow.getSettings().setJavaScriptEnabled(true);//设置支持脚本
wvShow.getSettings().setBuiltInZoomControls(true);// 设置支持缩放
wvShow.getSettings().setDefaultZoom(ZoomDensity.FAR);// 屏幕自适应网页,如果没有这个,在低分辨率的手机上显示可能会异常
wvShow.loadUrl(URL);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more_app, menu);
return true;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.more_app, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.refresh: {// 刷新
wvShow.loadUrl(URL);
break;
}
case R.id.open_in_brower: {// 在浏览器中打开
Uri uri = Uri.parse(URL);
Intent it = new Intent(Intent.ACTION_VIEW, uri);
startActivity(it);
break;
}
}
return true;
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<WebView
android:id="@+id/web_view"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<!-- 正在加载的提示 -->
<ProgressBar
android:id="@+id/pb_loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
style="?android:attr/progressBarStyle"
/>
</RelativeLayout>
监听了菜单按钮:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/refresh" android:title="刷新"
></item>
<item android:id="@+id/open_in_brower" android:title="在浏览器中打开"
></item>
</menu>
最后当然不要忘记权限:
<uses-permission android:name="android.permission.INTERNET" />
项目地址:
https://github.com/michaelye/WebViewDemo
- 大小: 277.2 KB
分享到:
相关推荐
android studio使用NanoHTTPD 创建 http 服务器打开html并使用webView打开页面
为了修复 ReactNative 的 WebView 组件在安卓端不支持文件上传而包装的一个 Webview 组件
主要介绍了Android WebView打开网页一片空白的解决方法,试了很多方法,最后记录一下,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
* shouldOverrideUrlLoading:控制新的连接在当前 WebView 中打开 WebChromeClient 常用方法: * onCloseWindow:关闭 WebView * onCreateWindow:创建 WebView * onJsAlert:处理 Javascript 警告框 * ...
用安卓的 webView 控件来显示h5网页 然后给webView 设置WebChromeClient WebChromeClient 主要处理解析,渲染网页等浏览器做的事情 设置完毕后 重写WebChromeClient 的openFileChooser方法即可实现h5调用手机摄像头...
【微信跳转接口】微信引导用户右上角打开浏览器,访问APP下载链接,相关文章地址:https://blog.csdn.net/qq15577969/article/details/103236861
cocos2d-x-webview 一个轻量级的lib,它在iOS和... 只需将ios目录中的WebView.h,WebView.cpp和文件复制到您的项目中 安卓 去做 #例子 在cocos2d v2.x上 CCScene* scene = CCScene::create(); WebView* view = WebVie
当我试图保存一个 JavaScript 对象时,我遇到了错误 - 所以我创建了一个带有 get 和 set 方法的持久处理程序,该方法将 JavaScript 元素转换为 JSON 字符串(参见文件“lib/persistence.jstalk”)。 通过这种方式...
我们平时在进行安卓开发使用到webview加载网页时,我们不能准确了解网页的加载进度,因此为了提高用户体验,我们在webview中加入进度条显示加载进度。 程序预览界面: 一、主界面xml布局文件 <LinearLayout ...
webview入门的一个小例子,在网页打开还是在自己定义的view中打开网页,带前进和后退功能。功能简单完善。
facebook-messenger-webview Facebook Messenger高级主题:Web视图-Messenger平台允许您打开标准Web视图,您可以在其中加载Messenger中的网页。想要使用Node.js构建出色的机器人,请观看我的教程: : list 观看视频...
原理:在第一次WebView打开网页时会进行检测每条请求的内容,都会先根据后缀名称优先检测本地沙盒目录下有无此资源文件,若没有即会去服务端请求并且将该资源下载到沙盒目录下。当第二次打开时也会拦截该请求,并...
1.权限问题:在配置文件中需要设置网络权限 ”android.permission.INTERNET”> 2.基本配置问题 WebSettings webSettings = webView.getSettings(); //支持缩放,默认为true。 .setUseWideViewPort(true); // 缩放...
根据网站资源引用说明:pyecharts 使用的所有静态资源文件存放于 pyecharts-assets 项目中,默认挂载在 https://assets.pyecharts.org/assets/ 因为默认优先从远程引用资源,这就导致有的时候无法加载js文件,图表...
打开,再把webview.setBackgroundColor(0xFF000000);改为webview.setBackgroundColor(0x00000000);即可实现网页透明,当然还要你做的网页也是透明的(没有提供透明网页,在网页中使用css设置即可)。 6. 本例中提供...
代码文件 import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.webkit.WebView; import android.webkit.WebViewClient; import android....
然后直接使用eclipse 打开安卓项目 3、更换空项目中的内容 1.在要Activity中实例化WebView组件:WebView webView = new WebView(this); 2.调用WebView的loadUrl()方法,设置WevView要显示的网页: 互联网用:...
8.4 设计前往打开网页功能 8.5 将网络图像网址放入Gallery中显示 8.6 即时访问网络图片文件展示 8.7 手机气象局,实时卫星云图 8.8 通过网络播放mp3 8.9设置远程下载音乐为手机铃声 8.1 0远程下载桌面背景图案 8.1 1...
12套 HTML5移动端网页app模板h5前端设计代码手机自适应(商城、订餐、招聘等) 整套 : 移动端模板: ...下载浏览器打开即可运行浏览,完整的业务流程界面,完整的图片资源。 微信公众号、小程序webview 都可使用。
基本配置使用(宽幅自适应,返回网页上一层,显示网页标题等) 唤起三方应用(呼叫电话,发送短信,发送邮件等) 发布图片(版本兼容) 错误页面处理 全屏播放网络视频 与Js交互实例 优雅的进度条显示控件 演示示例...