`
iame
  • 浏览: 132056 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

WebView初探

阅读更多

环境:Android SDK 1.1

Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装成了WebView组件。
SDK的Dev Guide中有一个WebView的简单例子 ,寥寥几行代码就可以做一个自己的浏览器。
在实验时,有如下几个注意事项:
1)AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误:


2)如果访问的页面中有Javascript,则webview必须设置支持Javascript:

    webview.getSettings().setJavaScriptEnabled(true);

   否则显示空白页面。
3)如果页面中链接,如果希望点击链接继续在当前browser中响应,而不是新开Android的系统browser中响应该链接,必须覆盖webview的WebViewClient对象:

            mWebView.setWebViewClient(new WebViewClient(){
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
            });

上述方法告诉系统由我这个WebViewClient处理这个Intent,我来加载URL。点击一个链接的Intent是向上冒泡的,shouldOverrideUrlLoading方法return true表示我加载后这个Intent就消费了,不再向上冒泡了。

4)如果不做任何处理,在显示你的Brower UI时,点击系统“Back”键,整个Browser会作为一个整体“Back"到其他Activity中,而不是希望的在Browser的历史页面中 Back。如果希望实现在历史页面中Back,需要在当前Activity中处理并消费掉该Back事件:

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

 

5
0
分享到:
评论
5 楼 zxely 2012-12-20  
为什么在真机上用的时候,在有的机子可以访问google而在有的机子上却访问不了呢
4 楼 416849838 2011-12-26  
3 楼 buyajun 2009-10-14  
我直接就这样做的:

WebView ad_web = (WebView)this.findViewById(R.id.ad_web);

ad_web.getSettings().setJavaScriptEnabled(true);//开启javascript设置,否则WebView不执行js脚本

ad_web.loadUrl("http://xxxxxx/100.shtml");//加载网页
2 楼 iame 2009-06-24  
loadUrl应该放在setWebViewClient之后
1 楼 wmiky 2009-06-23  
我按照webview那个例子去试验了下,前一部分没什么问题,到了要重写webviewclient时有点问题。如果没有setWebViewClient这一段的话,模拟器运行时会自动load出Google的主页出来,可是加上那段后就只显示一个标题“hello,webview”。不知道代码哪里错了呢,还是说放的位置不对。搞不清楚。你能帮我看下吗?
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        webView =(WebView) findViewById(R.id.webview);
        webView.getSettings().setJavaScriptEnabled(true);
        webView .loadUrl("http://www.google.com");

        webView.setWebViewClient(new WebViewClient(){ 
           public boolean shouldOverrideUrlLoading(WebView view, String url) { 
                view.loadUrl(url); 
                return true; 
            } 
        });

     
    }

相关推荐

    Sock-webView:通过socket显示网页到webView

    Socket初探 socket原始方式获取网络数据展现到webView ##一、方法参数介绍 /**1.socket 参数 domain: 协议域,AF_INET(IPV4的网络开发) type: Socket 类型,SOCK_STREAM(TCP)/SOCK_DGRAM(UDP,报文) protocol:...

    初探 PhoneGap 框架在 Android 上的表现

    在“初探 PhoneGap 框架在 Android 上的表现”这一主题中,我们将深入探讨 PhoneGap 在 Android 平台上的应用开发实践和性能表现。 PhoneGap 的主要优势在于它的可移植性。开发者只需编写一次代码,就可以将其部署...

    ReactNative初探.pdf

    React Native初探的知识点梳理: 1. 背景与问题概述: - 活动多:指的是移动应用可能面临的频繁活动更新需求。 - 产品迭代快:移动应用需要快速迭代来响应市场变化。 - 原生代码更新不灵活:原生应用在更新时...

    android开发揭秘PDF

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    《Android应用开发揭秘》附带光盘代码.

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    《Android应用开发揭秘》源码

     6.1 Android数据存储初探  6.2 数据存储之Shared Preferences  6.3 数据存储之Files  6.4 数据存储之Network  6.5 Android数据库编程  6.5.1 SQLite简介  6.5.2 SQLite编程详解  6.5.3 SQLiteOpenHelper...

    Android应用开发揭秘

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    android开发资料

    **6.1 Android数据存储初探** - **6.2 数据存储之SharedPreferences**: SharedPreferences是一种轻量级的数据存储方式,适用于保存简单的键值对数据。 - **6.3 数据存储之Files**: 文件存储是最常见的数据存储方式...

    Android应用开发揭秘pdf高清版

    6.1 Android数据存储初探 6.2 数据存储之Shared Preferences 6.3 数据存储之Files 6.4 数据存储之Network 6.5 Android数据库编程 6.5.1 SQLite简介 6.5.2 SQLite编程详解 6.5.3 SQLiteOpenHelper应用 6.6 数据共享...

    Android 开发技巧

    9.86、ANDROID自动化测试初探 324 9.86.1、捕获Activity上的Element 324 9.86.2、Hierarchyviewer 捕获Element的 328 9.86.3、架构实现 330 9.86.4、模拟键盘鼠标事件(Socket+Instrumentation实现) 332 9.86.5、再...

Global site tag (gtag.js) - Google Analytics