`
iame
  • 浏览: 130123 次
  • 性别: 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; 
            } 
        });

     
    }

相关推荐

    Android webview 内存泄露的解决方法

    Android webview 内存泄露的解决方法 最近在activity嵌套webview显示大量图文发现APP内存一直在涨,没法释放内存,查了很多资料,大概是webview的一个BUG,引用了activity导致内存泄漏,所以就尝试传递...

    uniapp 使用webView通讯

    uniapp 使用webView通讯

    android WebView预加载

    现在web app越来越多,webview控件的使用也越来越重要。 有时我们会在启动页或引导页之后,加载一个webview为控件的主页。 但如果跳转之后再加载,会看到webview有一个加载的过程,如果网页较大可能加载起来会很慢。...

    实例详解Android Webview拦截ajax请求

    Android Webview虽然提供了页面加载及资源请求的钩子,但是对于h5的ajax请求并没有提供干涉的接口,这意味着我们不能在webview中干涉javascript发起的http请求,而有时候我们确实需要能够截获ajax请求并实现一些功能...

    android webview 版本69.0

    这是AOSP的webview,包名com.android.webview,不是google的webview

    WebView2-20200512- WebView2Loader.dll.zip

    WebView2Loader.dll 包含 x86 x64 Rad Studio 使用

    Android WebView 去除标题

    Android WebView 去除标题 利用javacript交互

    webView谷歌离线调试包

    调试基于WebView的App最舒服的工具Chrome自带的开发者工具,其中有我们熟悉的Dom树调试,JS调试,Network监视等等功能。 Google提供的调试Android上WebView的步骤: 1.开启手机上的USB调试功能并且连接计算机手机端...

    webview_浏览器_qt浏览器_QT_WebView_

    QT webview浏览器相关开发,简单webview应用开发

    Android Webview滑动监听

    Android Webview 滑动监听 放大缩小查看网页图片

    Android System Webview 90.0.4430.82

    带google包名的可以下载 google system webview覆盖安装,可以略过 此文件包含 arm和arm64的webview这是AOSP Webview, 包名com.android.webview, 不带google的 带google包名的可以下载 google system webview覆盖...

    crosswalk-webview比webview更好用

    crosswalk-webview 比android原生的webview更好用速度更快,支持富文本显示,能够更好的支持富文本网页

    解决webview 第二次调用loadUrl页面不刷新的问题

    以下方法可以成功! @Override public void onClick(View view) { webview.loadUrl(url); webview.loadUrl( [removed][removed].reload( true ) );...webView.setWebViewClient(new WebViewCli

    Android WebView获取源码

    Android使用WebView获取网页的源码,将WebView封装进ArthurWebView,直接创建并初始化即可使用!

    webview显示图片并下载

    webview显示图片并下载

    com.google.android.webview.apk

    有些平板缺失加载webview所依赖的内核apk的资源文件,会导致应用加载webview报错。需要自己安装webview的apk。 webview全称叫做Android System WebView,它是Android生态系统的重要组成部分,也是Chrome浏览器的...

    WebView加载失败错误处理

    webview加载失败,自定义错误页面处理

    Android实现WebView懒加载

    Android实现WebView懒加载,提前进行页面JS资源加载。减少WebView加载时间及加载资源问题。Android 8.0以前需要引入X5内核,Android 8.0以后无特殊要求。

    Android_WebView安全攻防指南2020.pdf

    1.WebView攻击⾯ 2.WebView配置与使⽤ 3.WebViewURL校验 4.WebView安全防御 5.总结 WebView已成为Android App中最容易出现重大漏洞的薄弱环节。为此,本次峰会上,何恩基于自身漏洞挖掘所积累的丰富案例,对WebView...

    Android System Webview 89.0.4389.105

    这是AOSP Webview, 包名com.android.webview, 不带google的 带google包名的可以下载 google system webview覆盖安装,可以略过 此文件包含 arm和arm64的webview

Global site tag (gtag.js) - Google Analytics