webView使用内部浏览器加载网页
来源:互联网 发布:金铅笔网络运营 编辑:程序博客网 时间:2024/05/17 01:27
效果图
方式一:
核心代码
package com.ican.subjects.activity;import android.app.ProgressDialog;import android.view.KeyEvent;import android.webkit.WebChromeClient;import android.webkit.WebResourceRequest;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import com.ican.subjects.R;import com.ican.subjects.base.BaseActivity;/** * 创建者 涂文远 * 创建时间 2016/8/31 16:10 * 描述 ${TODO} * <p/> * 更新者 $Author$ * 更新时间 $Date$ * 更新描述 ${TODO} */public class WebViewActivity extends BaseActivity { private WebView mWebView; private ProgressDialog mProgressDialog; @Override public int getLayout() { return R.layout.activity_webview; } @Override protected void initView() { mWebView = (WebView) findViewById(R.id.blog_detail_webview); mProgressDialog = new ProgressDialog(this); mProgressDialog.setIcon(R.mipmap.ic_launcher); mProgressDialog.setTitle( "进度对话框" ); mProgressDialog.setMessage( "玩命下载中...." ); // 设置对话框的样式为水平 mProgressDialog.setProgressStyle(ProgressDialog. STYLE_HORIZONTAL); mProgressDialog.setMax(100); mProgressDialog.show(); mWebView.setWebViewClient(new WebViewClient(){ /*@Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl("http://www.2000df.com"); return true; }*/ @Override public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) { view.loadUrl("http://www.2000df.com"); return true; } }); } @Override protected void initData() { mWebView.setWebChromeClient(new MyWebChromeClient()); WebSettings settings = mWebView.getSettings(); settings.setJavaScriptEnabled(true); settings.setJavaScriptCanOpenWindowsAutomatically(true); settings.setUseWideViewPort(true);//设置此属性,可任意比例缩放 settings.setLoadWithOverviewMode(true); settings.setBuiltInZoomControls(true); settings.setSupportZoom(true); // User settings /*if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { if (0 != (getApplicationInfo().flags &= ApplicationInfo.FLAG_DEBUGGABLE)) { WebView.setWebContentsDebuggingEnabled(true); } } settings.setJavaScriptEnabled(true);//设置webview支持javascript settings.setLoadsImagesAutomatically(true);//支持自动加载图片 settings.setUseWideViewPort(true);//设置webview推荐使用的窗口,使html界面自适应屏幕 settings.setLoadWithOverviewMode(true); settings.setSaveFormData(true);//设置webview保存表单数据 settings.setSavePassword(true);//设置webview保存密码 settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);//设置中等像素密度,medium=160dpi settings.setSupportZoom(true);//支持缩放 CookieManager.getInstance().setAcceptCookie(true); if (Build.VERSION.SDK_INT > 8) { settings.setPluginState(WebSettings.PluginState.ON_DEMAND); } // Technical settings settings.setSupportMultipleWindows(true); mWebView.setLongClickable(true); mWebView.setScrollbarFadingEnabled(true); mWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); mWebView.setDrawingCacheEnabled(true); settings.setAppCacheEnabled(true); settings.setDatabaseEnabled(true); settings.setDomStorageEnabled(true);*/ mWebView.loadUrl("http://www.2000df.com"); } private class MyWebChromeClient extends WebChromeClient { @Override public void onProgressChanged(WebView view, int newProgress) { if (newProgress == 100) { //Toast.makeText(WebViewActivity.this, "加载完成", Toast.LENGTH_SHORT).show(); mProgressDialog.dismiss(); //progress.setVisibility(View.GONE); } else { /*if (progress.getVisibility() == View.GONE) progress.setVisibility(View.VISIBLE); progress.setProgress(newProgress);*/ mProgressDialog.setProgress(newProgress); } super.onProgressChanged(view, newProgress); } } public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }}
方式二:
核心代码
package com.xuecheyi.activity;import android.annotation.SuppressLint;import android.app.Dialog;import android.content.Intent;import android.graphics.Bitmap;import android.os.Build;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.view.View.OnClickListener;import android.webkit.JsResult;import android.webkit.WebChromeClient;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.LinearLayout;import com.xuecheyi.BaseActivity;import com.xuecheyi.mb.R;import com.xuecheyi.utils.Constant;import com.xuecheyi.utils.DialogUtil;import com.xuecheyi.utils.LogUtil;import com.xuecheyi.utils.SPUtils;import com.xuecheyi.views.TitleManager;import com.xuecheyi.views.XCYJavascriptInterface;import org.json.JSONObject;@SuppressLint("SetJavaScriptEnabled")public class LoadZTWebViewActivity extends BaseActivity implementsOnClickListener {private WebView mWebview;private WebSettings settings;private String titleStr, urlPath, path, adPath;private String mType;private Dialog loadDialog;private LinearLayout title_back_ll;private XCYJavascriptInterface mXCYJavascriptInterface;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_zt_protocol);findViews();init();}@Overrideprotected void onRestart() {super.onRestart();if(Constant.IsFromLogin) {findViews();init();Constant.IsFromLogin = false;}}public void initCS() {if (Build.VERSION.SDK_INT >= 19) {mWebview.getSettings().setLoadsImagesAutomatically(true);} else {mWebview.getSettings().setLoadsImagesAutomatically(false);}}private class MyWebViewClient extends WebViewClient {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if (url.indexOf("tel:") < 0) {// 页面上有数字会导致连接电话view.loadUrl(url);}return true;}}@Overridepublic void findViews() {title_back_ll = (LinearLayout) findViewById(R.id.title_back_ll);// TODO Auto-generated method stubmWebview = (WebView) findViewById(R.id.mWebview);settings = mWebview.getSettings();settings.setJavaScriptEnabled(true);settings.setJavaScriptCanOpenWindowsAutomatically(true);mXCYJavascriptInterface = new XCYJavascriptInterface(mWebview,this);mWebview.addJavascriptInterface(mXCYJavascriptInterface,"XCYAndroid");// 设置webview缓存settings.setCacheMode(WebSettings.LOAD_NO_CACHE);//initCS();}@Overridepublic void init() {// TODO Auto-generated method stubloadDialog = DialogUtil.getLoadingDialog(this);titleStr = getIntent().getStringExtra("titleStr");mType = getIntent().getStringExtra("type");path = getIntent().getStringExtra("path");adPath = getIntent().getStringExtra("adPath");if (mType != null && mType.equals("DriverSchool")) {String jxId = getIntent().getStringExtra("jxId");urlPath = Constant.BASE_WEBVIEW_PATH + "jx_detail.html?jxId="+ jxId;mWebview.loadUrl(urlPath);} else if (mType != null && mType.equals("DriverTeacher")) {String jlId = getIntent().getStringExtra("jlId");urlPath = Constant.BASE_WEBVIEW_PATH + "jl_detail.html?jlId="+ jlId;mWebview.loadUrl(urlPath);} else if (mType != null && mType.equals("FAQ")) {settings.setCacheMode(WebSettings.LOAD_DEFAULT);urlPath = Constant.BASE_WEBVIEW_PATH + "FAQ.html";mWebview.loadUrl(urlPath);}TitleManager.showTitleByBack(this, null, titleStr, R.string.title_back,0, this);if (null != path) {urlPath = "file:///android_asset/html/" + path;mWebview.loadUrl(urlPath);}if (null != adPath) {urlPath = adPath+"&token="+getToken();//urlPath = adPath;mWebview.loadUrl(urlPath);}LogUtil.e("####", "##显示网址##" + urlPath);mWebview.setWebViewClient(new MyWebViewClient());mWebview.setWebViewClient(new WebViewClient() {@Overridepublic void onPageStarted(WebView view, String url, Bitmap favicon) {// TODO Auto-generated method stubloadDialog.show();}@Overridepublic void onPageFinished(WebView view, String url) {loadDialog.dismiss();}});mWebview.setWebChromeClient(new WebChromeClient() {@Overridepublic boolean onJsAlert(WebView view, String url, String message, JsResult result) {// TODO Auto-generated method stubreturn super.onJsAlert(view, url, message, result);}});}public String getToken() {String token = (String) SPUtils.get(this, Constant.UserInfo.USER_TOKEN, "");LogUtil.e("####", "token:" + token);if (token != null && !token.equals("")) {return token;} else {return "";}}@Overridepublic void setListener() {// TODO Auto-generated method stub}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.title_back_ll:if (path != null && path.equals("splash")) {Intent intent = new Intent(LoadZTWebViewActivity.this,MainActivity.class);startActivity(intent);LoadZTWebViewActivity.this.finish();} else {LoadZTWebViewActivity.this.finish();}break;}}@Overridepublic void onRecvData(String type, JSONObject response) {// TODO Auto-generated method stub}public boolean onKeyDown(int keyCode, KeyEvent event) {if (keyCode == KeyEvent.KEYCODE_BACK) {if (path != null && path.equals("splash")) {Intent intent = new Intent(LoadZTWebViewActivity.this,MainActivity.class);startActivity(intent);LoadZTWebViewActivity.this.finish();} else {if (mWebview.canGoBack()) {mWebview.goBack();return true;} else {finish();}}return true;}return super.onKeyDown(keyCode, event);}@Overrideprotected void onPause() {super.onPause();mWebview.onPause();}@Overrideprotected void onResume() {super.onResume();mWebview.onResume();}}
0 0
- webView使用内部浏览器加载网页
- webview加载网页用法(工程内部加载)
- Android使用WebView加载网页屏蔽系统浏览器的方法
- [Android] 使用 WebView 加载网页而不调用外部浏览器
- 使用WebView加载网页
- WebView网页加载使用
- android使用webview加载网页
- android使用webview加载网页
- android:使用webview加载网页
- 使用WebView自定义加载网页
- android使用webview加载网页
- Android使用WebView加载网页
- 使用Webview加载html网页
- Android使用WebView加载网页
- Android使用WebView加载网页
- 使用WebView加载本地网页
- WebView 加载网页内部video 横向全屏播放问题
- WebView——重写WebView实现在WebView内部加载网页
- 8天学通MongoDB——第六天 分片技术
- 触摸屏上图片移动延迟削减方法
- 深圳结构化面试真题
- zookeeper acl权限
- MySQL修改表结构的常用方法
- webView使用内部浏览器加载网页
- 解析XML文件并且进行增删改查操作
- Dockerfile: ADD vs COPY
- 有关jsp-title乱码的可能之一之解决
- xcode 'xxx.app' couldn't be opened because you don't have permission to view it
- How can I connect two bridges (eg br0 and br1)?
- 短信验证码接收工具的运行原理及app安装流程
- P1003越野跑
- 2016/10/26