`
ping8080
  • 浏览: 57877 次
  • 性别: Icon_minigender_1
  • 来自: 湖南
文章分类
社区版块
存档分类
最新评论
阅读更多

原文:http://www.cnblogs.com/lm3515/archive/2011/03/14/1984087.html

Android WebView总结

1、添加权限:AndroidManifest.xml中必须使用许可"android.permission.INTERNET",否则会出Web page not available错误。

在Androidmanifest.xml文件中添加
  
<uses-permission android:name="android.permission.INTERNET" /> 
</manifest>

2、在要Activity中生成一个WebView组件:WebView webView = new WebView(this);
    3、设置WebView基本信息:
          如果访问的页面中有Javascript,则webview必须设置支持Javascript。
          webview.getSettings().setJavaScriptEnabled(true);  
          触摸焦点起作用
          requestFocus();
          取消滚动条
          this.setScrollBarStyle(SCROLLBARS_OUTSIDE_OVERLAY);
    4、设置WevView要显示的网页:
          互联网用:webView.loadUrl("http://www.google.com"); 
          本地文件用:webView.loadUrl(file:///android_asset/xx.html);固定格式

    本地文件存放在:assets文件中

  
    5、如果希望点击链接由自己处理,而不是新开Android的系统browser中响应该链接。
          给WebView添加一个事件监听对象(WebViewClient)      
        
          并重写其中的一些方法
                shouldOverrideUrlLoading:对网页中超链接按钮的响应。
                                          当按下某个连接时WebViewClient会调用这个方法,并传递参数:按下的url 
                onLoadResource   
                onPageStart  
                onPageFinish  
                onReceiveError
                onReceivedHttpAuthRequest
          

    6、如果用webview点链接看了很多页以后,如果不做任何处理,点击系统“Back”键,整个浏览器会调用finish()而结束自身,如果希望浏览的网页回退而不是退出浏览器,需要在当前Activity中处理并消费掉该Back事件。
       覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法。

 

public boolean onKeyDown(int keyCoder,KeyEvent event){
                      if(webView.canGoBack() && keyCoder == KeyEvent.KEYCODE_BACK){
                              webview.goBack();   //goBack()表示返回webView的上一页面
 
                              return true;
                      }
                      return false;
              }

 

 

webview控件返回事件 :

webView.setOnKeyListener(new View.OnKeyListener() {
   @Override
   public boolean onKey(View v, int keyCode, KeyEvent event) {
    if (event.getAction() == KeyEvent.ACTION_DOWN) {
     if ((keyCode == KeyEvent.KEYCODE_BACK)
       && webView.canGoBack()) {
      webView.goBack();
      return true;
     }     
    }
    return false;
   }
  });

 

 

 

 

 

  String strURI = ("file:///android_asset/first/first.html");   //本地文件
// String strURI="http://www.baidu.com";    //网络文件

 //String strURI="content://com.android.htmlfileprovider/sdcard/index.html";  //打开本地sd卡内的index.html文件


  final WebView mWebView;
  mWebView = new WebView(this);  
  mWebView.loadUrl(strURI); 

 

 

mWebView.setWebViewClient(new WebViewClient() {

   // 得到请求时的错误 提示
   public void onReceivedError(WebView view, int errorCode,
     String description, String failingUrl) {
    System.out.println("2222222222222222222222222222222"
      + errorCode);
    
   }

   // 打开连接前的事件
   public boolean shouldOverrideUrlLoading(WebView view, String url) {
    mWebView.loadUrl(strURI1);
    return false;
    
   }
 
 });

 

 

 

 

webView.setScrollBarStyle(View.SCROLLBARS_OUTSIDE_OVERLAY);//滚动条风格
  setContentView(webView);
  webView.setWebViewClient(new ViewClient());
  webView.getSettings().setJavaScriptEnabled(true);//js可用
  webView.getSettings().setPluginsEnabled(true);//设置支持flash插件
  webView.getSettings().setLoadsImagesAutomatically(true); //自动加载图片 
  webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);//设置缓存模式
  webView.getSettings().setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);//设置页面固定大小
  webView.getSettings().setBuiltInZoomControls(true); //支持多点触摸

分享到:
评论

相关推荐

    Android webview 内存泄露的解决方法

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

    android WebView预加载

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

    实例详解Android Webview拦截ajax请求

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

    webView谷歌离线调试包

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

    com.google.android.webview.apk

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

    WPF与WebView2双向通信 WPF发送数据到WebView2显示的网页当中 WPF制作的浏览器与网页双向通信 WPF与网页

    WPF与WebView2之间的相互通信具有以下优点: 灵活性: 双向通信使得本地应用程序能够与网页内容无缝集成,提供丰富的交互体验。 代码复用: 网页开发者可以复用现有的Web技术栈和前端框架,同时利用WPF的强大功能...

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

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

    Android_WebView安全攻防指南2020.pdf

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

    Android通过Chrome Inspect调试WebView的H5 App离线.rar

    1.前端开发离不开Chrome的开发者工具,尤其是调试Android WebView时。然而,如果使用chrome://Inspect的方法,国内的开发者会惊奇地发现“空白啊”!为此,我发布过这个离线包的解决方案!可以无需FanQ就能调试了。 ...

    android WebView设置setInitialScale(...)后,修改设置的值,问题解决

    WebView在设置setInitialScale(....)后,是无法修改此放缩比例值的,因为此设置只有在webview的初始化时候加载一次,后边是无法修改的。看了下WebView的源码,修改此缩放比例值WebView内部是通过: private void...

    Android中webview使用x5内核集成demo

    Android x5内核集成demo 解决webview在使用内核时跟h5混合调用时出现的白屏,加载缓慢,vue报错各种兼容问题。在x5内核加载失败时,会切换成系统本身的内核来加载h5内容。如果项目上架Google商店等海外市场运营的,...

    android WebView设置setBuiltInZoomControls(true)同时隐藏缩放按钮

    WebView设置setBuiltInZoomControls(true)后,隐藏缩放按钮的控件在webView的源码里是通过: private ZoomButtonsController mZoomButtonsController; 这个私有控件控制的,而且也没有public方法可以获得此...

    微信小程序webview与h5通过postMessage实现实时通讯的实现

    在做 React Native 应用时,如果需要在 App 里面内嵌 H5 页面,那么 H5 与 App 之间可以通过 Webview 的 PostMessage 功能实现实时的通讯,但是在小程序里面,虽然也提供了一个 webview 组件,但是,在进行 post...

    Android代码-Android-X5WebView基本封装

    Android-X5WebView基本封装和使用 通过OkHttp拦截器、自定义CookieJar有效完成客户端与H5端的Cookie同步管理 监听WebView的加载进度 滚动条的设置(隐藏或者显示,内侧显示还是外侧显示) 优化X5WebView的预加载问题...

    android 8.0 webview 拍照预览、二维码扫描

    android 8.0 webview 拍照、预览、二维码扫描比较完整的例子,对于权限检查控制,有比较完善的提示写法。可以下载后,直接在android studid上运行,编译版本和target版本均是SDK android 8.0,最低版本设置成了...

    uniapp 使用webView通讯

    uniapp 使用webView通讯

    webview_浏览器_qt浏览器_QT_WebView_

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

    3D WebView for Android and iOS + win + mac Web Browser 4.2

    使用与支持 Vuplex VR/AR 浏览器的相同代码 该软件包支持 Android ≥ 6.0 上的原生视频和 WebGL,但某些 ...https://assetstore.unity.com/packages/tools/gui/3d-webview-for-android-web-browser-137030?locale=zh-CN

    android webview 版本69.0

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

    WebView2-20200512- WebView2Loader.dll.zip

    WebView2Loader.dll 包含 x86 x64 Rad Studio 使用

Global site tag (gtag.js) - Google Analytics