zoukankan      html  css  js  c++  java
  • Anaroid WebView详解大全

    资源描述:

    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);
    }
    });

    从容是一种态度。
  • 相关阅读:
    POJ 3258 (NOIP2015 D2T1跳石头)
    POJ 3122 二分
    POJ 3104 二分
    POJ 1995 快速幂
    409. Longest Palindrome
    389. Find the Difference
    381. Insert Delete GetRandom O(1)
    380. Insert Delete GetRandom O(1)
    355. Design Twitter
    347. Top K Frequent Elements (sort map)
  • 原文地址:https://www.cnblogs.com/yume2015/p/3101947.html
Copyright © 2011-2022 走看看