summaryrefslogtreecommitdiffstats
path: root/docs/html/resources/articles/using-webviews.jd
diff options
context:
space:
mode:
Diffstat (limited to 'docs/html/resources/articles/using-webviews.jd')
-rw-r--r--docs/html/resources/articles/using-webviews.jd61
1 files changed, 61 insertions, 0 deletions
diff --git a/docs/html/resources/articles/using-webviews.jd b/docs/html/resources/articles/using-webviews.jd
new file mode 100644
index 0000000..3a1f34c
--- /dev/null
+++ b/docs/html/resources/articles/using-webviews.jd
@@ -0,0 +1,61 @@
+page.title=Using WebViews
+@jd:body
+
+<p>A small application called <a title="WebViewDemo"
+href="http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples
+/WebViewDemo">WebViewDemo</a> shows how you can add web content to your
+application. You can find it in the <a title="apps-for-android"
+href="http://code.google.com/p/apps-for-android/">apps-for-android</a> project.
+This application demonstrates how you can embed a {@link android.webkit.WebView}
+into an activity and also how you can have two way communication between your
+application and the web content. </p>
+
+<p>A
+WebView uses the same rendering and JavaScript engine as the browser,
+but it runs under the control of your application. The WebView can be
+full screen or you can mix it with other Views. The content for your
+WebView can come from anywhere. The WebView can download content from
+the web, or it can come from local files stored in your assets
+directory. The content can even be dynamically generated by your
+application code. For this example, the HTML comes from a local file
+called <a title="demo.html" href="http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/WebViewDemo/assets/demo.html">demo.html</a>.</p>
+
+<p>This application does not do very much: when you click on the
+android, he raises his arm.</p>
+
+<div style="text-align: center;"><img style="width: 322px; height: 482px;" src="images/webview.png"></div>
+
+<p>This
+could, of course, easily be accomplished with a little bit of
+JavaScript. Instead, though, WebViewDemo takes a slightly more
+complicated path to illustrate two very powerful features of WebView.</p>
+
+<p>First,
+JavaScript running inside the WebView can call out to code in your
+Activity. You can use this to have your JavaScript trigger actions like
+starting a new activity, or it can be used to fetch data from a
+database or {@link android.content.ContentProvider}. The API for this
+is very simple: just call the
+{@link android.webkit.WebView#addJavascriptInterface(java.lang.Object, java.lang.String) addJavascriptInterface()}
+method on your WebView. You pass an object whose methods you want to
+expose to JavaScript and the name to use when making calls. You can see
+the exact syntax in <a title="WebViewDemo.java"
+href="http://code.google.com/p/apps-for-android/source/browse/trunk/Samples/
+WebViewDemo/src/com/google/android/webviewdemo/WebViewDemo.java">WebViewDemo.
+java</a>. Here we are making our DemoJavascriptInterface object available to
+JavaScript where it will be called "window.demo".</p>
+
+<p>Second, your Activity can invoke JavaScript methods. All you have to do
+is call the {@link android.webkit.WebView#loadUrl(java.lang.String) loadUrl}
+method with the appropriate JavaScript call:</p>
+
+<p><code style="padding-left: 25px;">mWebView.loadUrl("javascript:wave()");</code></p>
+
+<p>Our <a title="WebViewDemo"
+href="http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/Samples
+/WebViewDemo">WebViewDemo</a> uses both techniques: when you click on the
+android, it calls out to the activity, which then turns around and calls back
+into the JavaScript. WebViews are very powerful, and they may be a valuable tool
+to help you build your application – especially if you already have a lot of
+HTML content. As it happens, we've used exactly this approach in some of the
+applications we've written.</p>