WebViewallows you to create your own window for viewing web pages (or even develop a complete browser). In this tutorial, you'll create a simpleActivitythat can view and navigate web pages.
  1. Create a new project namedHelloWebView.
  2. Open theres/layout/main.xmlfile and insert the following:
    <?xml version="1.0" encoding="utf-8"?>
    <WebViewxmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />
  3. Now open theHelloWebView.javafile. At the top of the class, declare aWebViewobject:
    WebView mWebView;

    Then use the following code for theonCreate()method:

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView
    (R.layout.main);

    mWebView
    = (WebView) findViewById(R.id.webview);
    mWebView
    .getSettings().setJavaScriptEnabled(true); //调用方法getSettings返回WebSetting对象去管理WebView
    mWebView
    .loadUrl("http://www.google.com"); //需要访问的地址
    }

    This initializes the memberWebViewwith the one from theActivitylayout; requests aWebSettingsobject withgetSettings(); and enables JavaScript for theWebViewwithsetJavaScriptEnabled(boolean). Finally, an initial web page is loaded withloadUrl(String).

  4. Because this application needs access to the Internet, you need to add the appropriate permissions to the Android manifest file. Open theAndroidManifest.xmlfile and add the following as a child of the<manifest>element:
    <uses-permission android:name="android.permission.INTERNET" />
  5. While you're in the manifest, give some more space for web pages by removing the title bar, with the "NoTitleBar" theme:
    <activity android:name=".HelloGoogleMaps" android:label="@string/app_name"
    android:theme="@android:style/Theme.NoTitleBar">
  6. Now run the application.

    You now have a simplest web page viewer. It's not quite a browser yet because as soon as you click a link, the default Android Browser handles the Intent to view a web page, because thisActivityisn't technically enabled to do so. Instead of adding an intent filter to view web pages, you can override theWebViewClientclass and enable thisActivityto handle its own URL requests.

    在第六步这里运行意味着本程序是需要依靠别的浏览器打开指定网页,说明程序不能自动打开网页;第七第八步是可以在本程序打开网页啦

  7. In theHelloAndroidActivity, add this nested class:
    private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
    view
    .loadUrl(url);
    return true;
    }
    }
  8. Then towards the end of theonCreate(Bundle)method, set an instance of theHelloWebViewClientas theWebViewClient:
    mWebView.setWebViewClient(new HelloWebViewClient());

    This line can go anywhere following the initialization of theWebViewobject.

    This creates aWebViewClientthat will load any URL selected from thisWebViewinto the sameWebView. TheshouldOverrideUrlLoading(WebView, String)method is passed the currentWebViewand the URL requested, so all it needs to do is load the URL in the given view. Returningtruesays that the method has handled the URL and the event should not propagate (in which case, an Intent would be created that's handled by the Browser application).

    If you run the application again, new pages will now load in this Activity. However, you can't navigate back to previous pages. To do this, you need to handle the BACK button on the device, so that it will return to the previous page, rather than exit the application.

    第八步以上的步骤按返回键的时候程序会直接退出而并不会返回上一页,以下第九步就是解决这一功能的实现

  9. To handle the BACK button key press, add the following method inside theHelloWebViewActivity:

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

    ThisonKeyDown(int, KeyEvent)callback method will be called anytime a button is pressed while in the Activity. The condition inside uses theKeyEventto check whether the key pressed is the BACK button and whether theWebViewis actually capable of navigating back (if it has a history). If both are true, then thegoBack()method is called, which will navigate back one step in theWebViewhistory.Returningtrueindicates that the event has been handled. If this condition is not met, then the event is sent back to the system.

更多相关文章

  1. android,JNI创建进程,使用fork()
  2. Android(安卓)wifi连接
  3. 备忘---Android(安卓)Permission
  4. Android模块化编程——WebView使用之系统返回键设置
  5. 微信内置浏览器UserAgent获取
  6. 如何使用好android的可访问性服务(Accessibility Services)
  7. Android(安卓)WebView挂马漏洞--各大厂商纷纷落马
  8. ArcGIS for Android入门程序之DrawTool2.0
  9. Android提供语音搜索功能

随机推荐

  1. Android入门教程(六)之------拿来主义.ap
  2. 局域网内android设备发现及通讯
  3. 闲鱼如何在2个月内实现Android启动速度翻
  4. Android(安卓)解码播放GIF图像
  5. Android(安卓)为你的应用添加悬浮窗功能
  6. 作为Android开发者 你真的知道app从启动
  7. Android(安卓)使用腾讯的TBS浏览器X5内核
  8. Android(安卓)软件行为监控系统 的原理
  9. Android是如何管理App内存的--Android内
  10. android安全问题(四) 抢先开机启动 - 结果