• Anaroid WebView详解大全


    资源描述:http://www.2cto.com/kf/201210/164571.html

    1.android提供了webView控件专门用来浏览网页。
      然后在程序中装载webView控件,设置属性,比如:颜色、字体、要访问的网址等。通过loadUrl方法设置当前webView需要访问的网址。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置。
     

    2.下面是设置一些常用属性、状态的方法

    WebSettings常用方法:
    setAllowFileAccess 启用或禁止WebView访问文件数据
    setBlockNetworkImage 是否显示网络图像
    setBuiltInZoomControls 设置是否支持缩放
    setCacheMode 设置缓冲的模式
    setDefaultFontSize 设置默认的字体大小
    setDefaultTextEncodingName 设置在解码时使用的默认编码
    setFixedFontFamily 设置固定使用的字体
    setJavaSciptEnabled 设置是否支持Javascript
    setLayoutAlgorithm 设置布局方式
    setLightTouchEnabled 设置用鼠标激活被选项
    setSupportZoom 设置是否支持变焦

    WebViewClient常用方法:
    doUpdate VisitedHistory 更新历史记录
    onFormResubmission 应用程序重新请求网页数据
    onLoadResource 加载指定地址提供的资源
    onPageFinished 网页加载完毕
    onPageStarted 网页开始加载
    onReceivedError 报告错误信息
    onScaleChanged WebView发生改变
    shouldOverrideUrlLoading 控制新的连接在当前WebView中打开

    WebChromeClient常用方法:
    onCloseWindow 关闭WebView
    onCreateWindow 创建WebView
    onJsAlert 处理Javascript中的Alert对话框
    onJsConfirm处理Javascript中的Confirm对话框
    onJsPrompt处理Javascript中的Prompt对话框
    onProgressChanged 加载进度条改变
    onReceivedlcon 网页图标更改
    onReceivedTitle 网页Title更改
    onRequestFocus WebView显示焦点
     

    3. android webView相关知识
    @下面的代码通过loadUrl方法设置当前webView需要访问的网址:
    mWebView=(WebView) findViewById(R.id.WebView01);
    mWebView.loadUrl(“http://www.sogou.com”);
    @在android中专门通过WebSettings来设置WebView的一些属性、状态等。在创建WebView时,系统有一个默认的设置,我们可以通过WebView.getSettings来得到这个设置:
    WebSettings webSettings=mWebView.getSettings();//取得对象
    WebSettings和WebView都在同一个生命周期中存在,当WebView被销毁后,如果再使用WebSettings,则会抛出异常。
    @使用WebViewClient来完成在应用程序中自定义网页浏览程序:
    WebViewClient是辅助WebView处理各种通知、请求等事件的类。通过WebView的setWebViewClient方法指定WebViewClient对象。
    WebView可以通过覆盖WebViewClient方法来辅助WebView浏览网页:
    public Boolean shouldOverrideUrlLoading
    (WebView view,String url){view .loadUrl(url);return true;}
     

    4. android webView实例
    实例中使用EditText输入网址,用Button来确认连接,用webView显示网页内容。
    这里使用了WebViewClient来辅助WebView处理一些事件,因此我们显示的网页都是在一个WebView控件中。可以通过goBack和goForward方法设置前进和后退,先检查是否可以前进和后退:
    if((keyCode==keyEvent.KEYCODE_BACK)&&mWebView.canGoBack())
    {
    mWebView.goBack()//返回前一个页面
    return true;
    }
    例子中,通过自制浏览器访问一个包含javascript对话框的html页面。通过点击界面上的“警告,提醒对话框”按钮、“带选择的对话框”按钮、“要求用户输入的对话框”按钮,界面分别会弹出对话框“这是一个警告对话框”、“更多信息请到我的博客去”正常按钮/取消按钮、“输入对话框”正常按钮/取消按钮、一个跳转页面。Js html页面在代码包的根目录下(dialog.html)。
    我们通过setWebChromeClient方法为WebView设置一个WebChromeClient对象,辅助WebView处理js对话框,监听按钮事件,然后通过confirm和cancel方法将我们的操作传递给js处理。
    package com.yarin.android.Examples_08_06;
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.AlertDialog.Builder;
    import android.content.DialogInterface;
    import android.graphics.Bitmap;
    ……
    public class Activity01 extends Activity
    {
    private final String DEBUG_TAG = "Activity01";
    private Button mButton;
    private EditText mEditText;
    private WebView mWebView;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mButton = (Button) findViewById(R.id.Button01);
    mEditText = (EditText) findViewById(R.id.EditText01);
    mWebView = (WebView) findViewById(R.id.WebView01);
    //设置支持JavaScript脚本
    WebSettings webSettings = mWebView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    //设置可以访问文件
    webSettings.setAllowFileAccess(true);
    //设置支持缩放
    webSettings.setBuiltInZoomControls(true);
    //设置WebViewClient
    mWebView.setWebViewClient(new WebViewClient()
    {
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
    view.loadUrl(url);
    return true;
    }
    @Override
    public void onPageFinished(WebView view, String url)
    {
    super.onPageFinished(view, url);
    }
    @Override
    public void onPageStarted(WebView view, String url, Bitmap favicon)
    {
    super.onPageStarted(view, url, favicon);
    }
    });

  • 相关阅读:
    Debian 安装配置(包括kdevelop)
    linux matlab2016 安装
    Qt5.7 无法输入中文问题
    阻塞方法与InterruptedException
    java的null
    原子性、可见性、有序性与指令重排序
    物理机内存模型与java内存模型
    java构造函数总结
    什么时候需要用super
    重载与重写
  • 原文地址:https://www.cnblogs.com/tmlee/p/4961478.html
Copyright © 2020-2023  润新知