博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Android_Webview]WebView的基本用法
阅读量:4688 次
发布时间:2019-06-09

本文共 2436 字,大约阅读时间需要 8 分钟。

 1、WebView 显示进度条 在onCreate事件里写:

[java] 
  1. WebView myWebView = (WebView) findViewById(R.id.webView1);
  2. final Activity activity = this;
  3. myWebView.setWebChromeClient(new WebChromeClient() {
  4.            public void onProgressChanged(WebView view, int progress) {
  5.                 activity.setTitle("正在努力为您加载....");
  6.                 activity.setProgress(progress * 100);
  7.                 if(progress == 100)
  8.                     activity.setTitle("已完成");//或者设置为原有的Activity标题
  9.           }
  10.        });

2、网页自适应webView宽度 在onCreate事件里写:

[java] 
  1. WebView myWebView = (WebView) findViewById(R.id.webView1);
  2. myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

3、webView支持网页JavaScript语言 在onCreate事件里写:

[java] 
  1. WebView myWebView = (WebView) findViewById(R.id.webView1);
  2. myWebView.getSettings().setJavaScriptEnabled(true);

4、网页里面超链接在webview里加载而不是在手机默认浏览器打开 在onCreate事件里写:

[java] 
  1. WebView myWebView = (WebView) findViewById(R.id.webView1);
[java] 
  1. myWebView.setWebViewClient(new WebViewClient(){
  2.        public boolean shouldOverrideUrlLoading(WebView view, String url) {
  3.              view.loadUrl(url);
  4.               return true;
  5.           }
  6.       });
[java] 
  1. myWebView.loadUrl("http://www.baidu.com"));//默认加载url只能放在setWebViewClient后面 否则网页里面超链接还是在手机默认浏览器打开而不是在WebView里加载

5、按手机返回按钮后退网页而不是打开WebView程序之前的界面:

[java] 
  1. public boolean onKeyDown(int keyCode, KeyEvent event)
  2.    { // Check if the key event was the BACK key and if there's history
  3.     WebView myWebView = (WebView) findViewById(R.id.webView1);
  4.     if ((keyCode == KeyEvent.KEYCODE_BACK) && myWebView.canGoBack())
  5.         {
  6.             myWebView.goBack();
  7.             return true;
  8.         } // If it wasn't the BACK key or there's no web page history, bubble up to the default // system behavior (probably exit the activity)
  9.     return super.onKeyDown(keyCode, event);
  10.    }

6、网页Js调用Android程序:

新建一类JavaScriptInterface

[java] 
  1. package com.example.androidhouse;
  2. import android.content.Context;
  3. import android.widget.Toast;
  4. public class JavaScriptInterface {
  5.     Context mContext;
  6.     /** Instantiate the interface and set the context */
  7.     JavaScriptInterface(Context c) { mContext = c; }
  8.     /** Show a toast from the web page */
  9.     public void showToast(String toast)
  10.     {
  11.         Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
  12.     }
  13. }

在onCreate事件里写:

[java] 
  1. WebView myWebView = (WebView) findViewById(R.id.webView1);
[java] 
  1. myWebView.addJavascriptInterface(new JavaScriptInterface(this),"Android");

网页js代码里写:

[javascript] 
  1. window.Andorid.showToast("我调用的Android程序");

切记:在Andorid2.2 和Android2.3里面 webview的js调用会引起系统崩溃出现vm aborting错误 这是这两个版本的BUG 解决起来很麻烦 到现在为止,我仍未找到解决的办法。

转载于:https://www.cnblogs.com/webapplee/p/3771940.html

你可能感兴趣的文章
拓扑排序
查看>>
NYOJ--32--SEARCH--组合数
查看>>
day07
查看>>
【Android开发:自定义控件系列二】关于PopupWindow的注意点
查看>>
HTML——使用表格进行页面布局
查看>>
字符串统计 连续的某个字符的数量 1.1.4
查看>>
JMS
查看>>
gulpfile 压缩模板
查看>>
JAVA知多少
查看>>
Kruskal算法(转)
查看>>
CSS3 Media Queries实现响应式布局
查看>>
【34.14%】【BZOJ 3110】 [Zjoi2013]K大数查询
查看>>
【 henuacm2016级暑期训练-动态规划专题 A 】Cards
查看>>
第五篇:白话tornado源码之褪去模板的外衣
查看>>
设备常用框架framework
查看>>
bootstrap模态框和select2合用时input无法获取焦点(转)
查看>>
快速转移数据的要领
查看>>
windows情况下的oracle效力
查看>>
*nix-style:定制 bash 提示符
查看>>
Informix IDS 11系统解决(918查验)认证指南,第 7 部分: IDS复制(7)
查看>>