1、 如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。
public boolean onKeyDown(intkeyCoder,KeyEvent event){ if(webView.canGoBack()&&keyCoder==KeyEvent.KEYCODE_BAC{ webview.goBack(); //goBack()表示返回webView的上一页面 return true; } return false; }2、 想在加载网页时给加载动画,不想加载网页的时候跳转到浏览器,在app中直接加载网页
webview.setWebViewClient(new WebViewClient() { //在这里loadurl就能实现app加载网页 @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { // TODO Auto-generated method stub view.loadUrl(url); return true; } @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); //隐藏加载动画 hideLoadingTips(); } @Override public void onPageStarted(WebView view, String url, Bitmap favicon) { super.onPageStarted(view, url, favicon); //开启加载动画 setLoadingTips(); } });3、加载h5需要定位权限的
webView.setWebViewClient(new WebViewClient()); //webView.loadUrl("http://news.baidu.com/"); webView.loadUrl("file:///android_asset/index.html"); WebSettings webSettings = webView.getSettings(); webSettings.setJavaScriptEnabled(true); //启用数据库 webSettings.setDatabaseEnabled(true); Stringdir=this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath(); //启用地理定位 webSettings.setGeolocationEnabled(true); //设置定位的数据库路径 webSettings.setGeolocationDatabasePath(dir); /** * 此处很重要,必须要 */ //***最重要的方法,一定要设置,这就是出不来的主要原因 webSettings.setDomStorageEnabled(true); webView.setWebChromeClient(new WebChromeClient(){ //配置权限(同样在WebChromeClient中实现) @Override public void onGeolocationPermissionsShowPrompt(String origin,Callback callback) { //这里直接返回为true,没有给用户提示,想给用户提示的可以自己写一 //个dialog,true和false按照callback格式写就行; callback.invoke(origin, true, false); super.onGeolocationPermissionsShowPrompt(origin, callback); } });4、加载图片表格,特别是微信的图片
WebSettings settings = web.getSettings(); settings.setJavaScriptEnabled(true);//允许js交互 settings.setDomStorageEnabled(true);//打开DOM储存API 不打开无法展示表单5、加载的网页自定义适应手机居中显示
WebSettings settings = web.getSettings(); settings.setLoadWithOverviewMode(true);暂时遇见的只有这些,后续补充!
