diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index d3d3d49f6620d..f9c1b096bf8c1 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -253,17 +253,13 @@ import java.util.Map; * and {@link WebChromeClient#onHideCustomView()} are required, * {@link WebChromeClient#getVideoLoadingProgressView()} is optional. *
- * - * - */ -/* - * Implementation notes. - * The WebView is a thin API class that delegates its public API to a backend WebViewProvider - * class instance. WebView extends {@link AbsoluteLayout} for backward compatibility reasons. - * Methods are delegated to the provider implementation: all public API methods introduced in this - * file are fully delegated, whereas public and protected methods from the View base classes are - * only delegated where a specific need exists for them to do so. */ +// Implementation notes. +// The WebView is a thin API class that delegates its public API to a backend WebViewProvider +// class instance. WebView extends {@link AbsoluteLayout} for backward compatibility reasons. +// Methods are delegated to the provider implementation: all public API methods introduced in this +// file are fully delegated, whereas public and protected methods from the View base classes are +// only delegated where a specific need exists for them to do so. @Widget public class WebView extends AbsoluteLayout implements ViewTreeObserver.OnGlobalFocusChangeListener, diff --git a/core/java/android/webkit/WebViewClassic.java b/core/java/android/webkit/WebViewClassic.java index 3bd9960a6359a..bb1f73f685079 100644 --- a/core/java/android/webkit/WebViewClassic.java +++ b/core/java/android/webkit/WebViewClassic.java @@ -138,211 +138,7 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - *A View that displays web pages. This class is the basis upon which you - * can roll your own web browser or simply display some online content within your Activity. - * It uses the WebKit rendering engine to display - * web pages and includes methods to navigate forward and backward - * through a history, zoom in and out, perform text searches and more.
- *To enable the built-in zoom, set - * {@link #getSettings() WebSettings}.{@link WebSettings#setBuiltInZoomControls(boolean)} - * (introduced in API version 3). - *
Note that, in order for your Activity to access the Internet and load web pages - * in a WebView, you must add the {@code INTERNET} permissions to your - * Android Manifest file:
- *<uses-permission android:name="android.permission.INTERNET" />- * - *
This must be a child of the {@code
See the Web View - * tutorial.
- * - *By default, a WebView provides no browser-like widgets, does not - * enable JavaScript and web page errors are ignored. If your goal is only - * to display some HTML as a part of your UI, this is probably fine; - * the user won't need to interact with the web page beyond reading - * it, and the web page won't need to interact with the user. If you - * actually want a full-blown web browser, then you probably want to - * invoke the Browser application with a URL Intent rather than show it - * with a WebView. For example: - *
- * Uri uri = Uri.parse("http://www.example.com");
- * Intent intent = new Intent(Intent.ACTION_VIEW, uri);
- * startActivity(intent);
- *
- * See {@link android.content.Intent} for more information.
- * - *To provide a WebView in your own Activity, include a {@code
- * WebView webview = new WebView(this); - * setContentView(webview); - *- * - *
Then load the desired web page:
- *
- * // Simplest usage: note that an exception will NOT be thrown
- * // if there is an error loading this page (see below).
- * webview.loadUrl("http://slashdot.org/");
- *
- * // OR, you can also load from an HTML string:
- * String summary = "<html><body>You scored <b>192</b> points.</body></html>";
- * webview.loadData(summary, "text/html", null);
- * // ... although note that there are restrictions on what this HTML can do.
- * // See the JavaDocs for {@link #loadData(String,String,String) loadData()} and {@link
- * #loadDataWithBaseURL(String,String,String,String,String) loadDataWithBaseURL()} for more info.
- *
- *
- * A WebView has several customization points where you can add your - * own behavior. These are:
- * - *Here's a more complicated example, showing error handling, - * settings, and progress notification:
- * - *
- * // Let's display the progress in the activity title bar, like the
- * // browser app does.
- * getWindow().requestFeature(Window.FEATURE_PROGRESS);
- *
- * webview.getSettings().setJavaScriptEnabled(true);
- *
- * final Activity activity = this;
- * webview.setWebChromeClient(new WebChromeClient() {
- * public void onProgressChanged(WebView view, int progress) {
- * // Activities and WebViews measure progress with different scales.
- * // The progress meter will automatically disappear when we reach 100%
- * activity.setProgress(progress * 1000);
- * }
- * });
- * webview.setWebViewClient(new WebViewClient() {
- * public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
- * Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show();
- * }
- * });
- *
- * webview.loadUrl("http://slashdot.org/");
- *
- *
- * For obvious security reasons, your application has its own - * cache, cookie store etc.—it does not share the Browser - * application's data. Cookies are managed on a separate thread, so - * operations like index building don't block the UI - * thread. Follow the instructions in {@link android.webkit.CookieSyncManager} - * if you want to use cookies in your application. - *
- * - *By default, requests by the HTML to open new windows are - * ignored. This is true whether they be opened by JavaScript or by - * the target attribute on a link. You can customize your - * {@link WebChromeClient} to provide your own behaviour for opening multiple windows, - * and render them in whatever manner you want.
- * - *The standard behavior for an Activity is to be destroyed and - * recreated when the device orientation or any other configuration changes. This will cause - * the WebView to reload the current page. If you don't want that, you - * can set your Activity to handle the {@code orientation} and {@code keyboardHidden} - * changes, and then just leave the WebView alone. It'll automatically - * re-orient itself as appropriate. Read Handling Runtime Changes for - * more information about how to handle configuration changes during runtime.
- * - * - *The screen density of a device is based on the screen resolution. A screen with low density - * has fewer available pixels per inch, where a screen with high density - * has more — sometimes significantly more — pixels per inch. The density of a - * screen is important because, other things being equal, a UI element (such as a button) whose - * height and width are defined in terms of screen pixels will appear larger on the lower density - * screen and smaller on the higher density screen. - * For simplicity, Android collapses all actual screen densities into three generalized densities: - * high, medium, and low.
- *By default, WebView scales a web page so that it is drawn at a size that matches the default - * appearance on a medium density screen. So, it applies 1.5x scaling on a high density screen - * (because its pixels are smaller) and 0.75x scaling on a low density screen (because its pixels - * are bigger). - * Starting with API Level 5 (Android 2.0), WebView supports DOM, CSS, and meta tag features to help - * you (as a web developer) target screens with different screen densities.
- *Here's a summary of the features you can use to handle different screen densities:
- *- * <link rel="stylesheet" media="screen and (-webkit-device-pixel-ratio:1.5)" href="hdpi.css" />- *
The {@code hdpi.css} stylesheet is only used for devices with a screen pixel ration of 1.5, - * which is the high density pixel ratio.
- *Here's an example meta tag to specify the target density:
- *<meta name="viewport" content="target-densitydpi=device-dpi" />
If you want to modify your web page for different densities, by using the {@code - * -webkit-device-pixel-ratio} CSS media query and/or the {@code - * window.devicePixelRatio} DOM property, then you should set the {@code target-densitydpi} meta - * property to {@code device-dpi}. This stops Android from performing scaling in your web page and - * allows you to make the necessary adjustments for each density via CSS and JavaScript.
- * - *In order to support inline HTML5 video in your application, you need to have hardware - * acceleration turned on, and set a {@link android.webkit.WebChromeClient}. For full screen support, - * implementations of {@link WebChromeClient#onShowCustomView(View, WebChromeClient.CustomViewCallback)} - * and {@link WebChromeClient#onHideCustomView()} are required, - * {@link WebChromeClient#getVideoLoadingProgressView()} is optional. - *
- * + * Implements a backend provider for the {@link WebView} public API. * @hide */ // TODO: Check if any WebView published API methods are called from within here, and if so