Android开发者指南——WebView
2011-07-29 22:20
567 查看
声明
欢迎转载,但请保留本文作译者和出处
水平有限,翻译不当之处欢迎雅正
序言: 本文位于Rsources/Tutorials/Hello Views/Web View
本文:/article/10730361.html
翻译:lonkiss & ❤Coco·Chanel❤
Web View
WebView 允许你创建一个自己的查看网页的视窗(甚至是开发一个完整的浏览器). 在此指南中, 你将建立一个可以浏览和导航网页的简单的Activity。
1、 创建一个名为 HelloWebView的项目
2、 打开 res/layout/main.xml 文件,插入以下内容
3、现在打开 HelloWebView.java 文件。在类的顶部,声明一个WebView对象
然后,为onCreate() 方法加入以下代码
这会从Activity布局中的WebView控件初始化Weview成员。用getSettings() 获得一个WebSettings 对象;并且使用setJavaScriptEnableed(boolean)为WebView启用javascript支持。 最后使用loadUrl(String)载入初始网页。
4、因为这个应用程序要访问因特网,你需要在Android manifest 文件中加入许可权限。打开 AndroidManifest.xml 文件,加入以下代码作为<manifest>元素的子元素
5、在manifest中使用"NoTitleBar" 主题 可以通过移除标题栏为浏览网页得到更多空间:
6、 现在启动应用程序
你现在有了一个简单的网页查看器,但它还不是一个真正的浏览器,因为当你点击一个链接的时候,android系统默认的浏览器会处理查看网页的意图,因为这个Activity还未在技术上提供支持去处理。
你可以重写WebViewClient类,并让这个Activity能处理它自己的URL请求,而不是添加一个Intent Filter去查看网页。
7、在HelloAndroid Activity中,加入这个内部类:
8、然后前往onCreate(Bundle)方法的末尾,构建一个HelloWebViewClient实例作为WebViewClient
这一行可以放在WebView对象初始化后的任何地方
这创建了一个可以加载任何一个在当前webView中选择的URL到当前webview的 WebViewClient。当前WebView和 请求的URL都传给了shouldOverrideUrlLoading(WebView, String)方法,它要做的就是在给定的视图中加载URL。返回true表示此方法已经处理了这个URL,事件不创建(否则 一个被系统默认浏览器应用程序处理的Intent会被创建)
如果你再次运行这个应用程序,新的页面将在这个Activity中加载。但是,你无法返回到先前的页面。为此,你需要处理设备上的BACK键,以致它能返回到之前的页面,而不是退出应用程序
9、处理BACK按钮被按事件,在HelloWebView Activity中加入以下代码
任何时候在此Activity中按下按钮,onKeyDown(int, KeyEvent) 回调方法将被调用。里面的条件语句使用keyEvent判断被按下的时候是否是Back按键并且WebView能返回(如果有历史记录)。如果都成立,goBack()方法会被调用,向webView的历史记录后退一步。返回true表明事件已经被处理完成,如果条件不成立,事件将被发回给系统。
10、再次运行应用程序,你现在可以打开连接和返回到浏览的历史页面。
当你打开出程序, 你将看到这个:
欢迎转载,但请保留本文作译者和出处
水平有限,翻译不当之处欢迎雅正
序言: 本文位于Rsources/Tutorials/Hello Views/Web View
Web View
原文:http://developer.android.com/resources/tutorials/views/hello-webview.html本文:/article/10730361.html
翻译:lonkiss & ❤Coco·Chanel❤
Web View
WebView 允许你创建一个自己的查看网页的视窗(甚至是开发一个完整的浏览器). 在此指南中, 你将建立一个可以浏览和导航网页的简单的Activity。
1、 创建一个名为 HelloWebView的项目
2、 打开 res/layout/main.xml 文件,插入以下内容
<?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、现在打开 HelloWebView.java 文件。在类的顶部,声明一个WebView对象
WebView mWebView;
然后,为onCreate() 方法加入以下代码
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mWebView = (WebView) findViewById(R.id.webview); mWebView.getSettings().setJavaScriptEnabled(true); mWebView.loadUrl("http://www.google.com"); }
这会从Activity布局中的WebView控件初始化Weview成员。用getSettings() 获得一个WebSettings 对象;并且使用setJavaScriptEnableed(boolean)为WebView启用javascript支持。 最后使用loadUrl(String)载入初始网页。
4、因为这个应用程序要访问因特网,你需要在Android manifest 文件中加入许可权限。打开 AndroidManifest.xml 文件,加入以下代码作为<manifest>元素的子元素
<uses-permission android:name="android.permission.INTERNET" />
5、在manifest中使用"NoTitleBar" 主题 可以通过移除标题栏为浏览网页得到更多空间:
<activity android:name=".HelloGoogleMaps" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar">
6、 现在启动应用程序
你现在有了一个简单的网页查看器,但它还不是一个真正的浏览器,因为当你点击一个链接的时候,android系统默认的浏览器会处理查看网页的意图,因为这个Activity还未在技术上提供支持去处理。
你可以重写WebViewClient类,并让这个Activity能处理它自己的URL请求,而不是添加一个Intent Filter去查看网页。
7、在HelloAndroid Activity中,加入这个内部类:
private class HelloWebViewClient extends WebViewClient { @Override public boolean shouldOverrideUrlLoading(WebView view, String url) { view.loadUrl(url); return true; } }
8、然后前往onCreate(Bundle)方法的末尾,构建一个HelloWebViewClient实例作为WebViewClient
mWebView.setWebViewClient(new HelloWebViewClient());
这一行可以放在WebView对象初始化后的任何地方
这创建了一个可以加载任何一个在当前webView中选择的URL到当前webview的 WebViewClient。当前WebView和 请求的URL都传给了shouldOverrideUrlLoading(WebView, String)方法,它要做的就是在给定的视图中加载URL。返回true表示此方法已经处理了这个URL,事件不创建(否则 一个被系统默认浏览器应用程序处理的Intent会被创建)
如果你再次运行这个应用程序,新的页面将在这个Activity中加载。但是,你无法返回到先前的页面。为此,你需要处理设备上的BACK键,以致它能返回到之前的页面,而不是退出应用程序
9、处理BACK按钮被按事件,在HelloWebView Activity中加入以下代码
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack()) { mWebView.goBack(); return true; } return super.onKeyDown(keyCode, event); }
任何时候在此Activity中按下按钮,onKeyDown(int, KeyEvent) 回调方法将被调用。里面的条件语句使用keyEvent判断被按下的时候是否是Back按键并且WebView能返回(如果有历史记录)。如果都成立,goBack()方法会被调用,向webView的历史记录后退一步。返回true表明事件已经被处理完成,如果条件不成立,事件将被发回给系统。
10、再次运行应用程序,你现在可以打开连接和返回到浏览的历史页面。
当你打开出程序, 你将看到这个:
![](http://hi.csdn.net/attachment/201107/29/0_13119492742Nek.gif)
相关文章推荐
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- android webview javascript api扩展, armeabi-v7 armeabi,兼谈SDK及其开发者的品行
- Android学习指南之二十九:WebView使用详解
- 开发者指南-Android如何绘制View 推荐
- Android开发者指南(18) —— Web Apps Overview
- Android开发者指南(18) —— Web Apps Overview
- [Android] Android中接入腾讯TBS浏览器WebView的入坑指南
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- 利用 Chrome 开发者工具远程调试 Android 中的原生 WebView
- Android开发者指南-View 动画-View Animation[原创译文]
- Android WebView的使用
- Android WebView 开发详解(二)
- android webview 设置缓存的相关操作
- Android WebView加载https网页(亲测)
- android webview 显示空白页问题解决
- Android切换页面效果的实现二:WebView+ViewPager
- Android 顶部带进度条的WebView
- Android Hybrid 学习过程 三 WebView设置缓存
- android webview加载网页时提示NET::ERR_CACHE_MISS的错误