zoukankan      html  css  js  c++  java
  • Hello,Views(四)用Web View实现浏览网页(附源码)

    源码链接已经修正

    前言

    本文翻译自官方教程。(源码下载

    android提供的web view可以让我们不用默认浏览器打开网页,本文将利用web view,在应用中实现网页的访问。

    1.新建工程HelloWebView

    2.打开res/layout/main.xml,添加一个webview,如下修改

    <?xml version="1.0" encoding="utf-8"?> 
    <WebView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id
    ="@+id/webview"
    android:layout_width
    ="fill_parent"
    android:layout_height
    ="fill_parent"
    />

    3.打开HelloWebViewActivity.java 文件,声明一个成员,并且重写onCreate()方法:

    WebView mWebView;

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    mWebView = (WebView) findViewById(R.id.webView1);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.cnblogs.com");
    mWebView.setWebViewClient(new HelloWebViewClient());
    }

    4.在清单文件中,设置网络访问权限

    <uses-permission android:name="android.permission.INTERNET" />
    
    

    5.找到我们的Activity,设置无标题模式android:theme="@android:style/Theme.NoTitleBar"。

    <activity 
    android:name=".HelloWebViewActivity"
    android:label
    ="@string/app_name"
    android:theme
    ="@android:style/Theme.NoTitleBar" >
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    6.在Android中打开网页时会自动调用系统的浏览器,而这是我们不希望出现的。那么我们就要自定义一个浏览网页的内类,这个类东西比较少,我们定义为内部类,它扩展WebViewClient接口:

    private class HelloWebViewClient extends WebViewClient 
    {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url)
    {
    view.loadUrl(url);
    return true;
    }
    }



    7.现在回到HelloWebViewActivity的oncreate()方法里面,在末尾添加:

    mWebView.setWebViewClient(new HelloWebViewClient());


    8.到这已经实现在应用的内部浏览网页,但是我们还缺少返回的功能,如果我们近入一个子网页后,又想返回上一页怎么办,这时需要重写按钮返回事件。

    @Override 
    public boolean onKeyDown(int keyCode, KeyEvent event)
    {
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
    {
    mWebView.goBack();
    return true;
    }
    return super.onKeyDown(keyCode, event);
    }



    9.全部OK,可以运行了。总体而言要实现本文的功能是比较简单的,但是 ,我们这样做的效率不是很高,如果对访问的缓存功能进行优化,就可以做成一个自己的手机浏览器了。(源码下载

  • 相关阅读:
    Python自动化开发课堂笔记【Day02】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    Python自动化开发课堂笔记【Day01】
    SOCKET.IO 前后端使用
    socket.io的emit使用清单
    nodejs 教程
    斗地主滑动选牌&&出牌
    Cocos Creator大厅+子游戏模式
    cocoscreator热更新
  • 原文地址:https://www.cnblogs.com/avenwu/p/2359098.html
Copyright © 2011-2022 走看看