zoukankan      html  css  js  c++  java
  • Android WebView 总结

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

    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)方法。
    1 public boolean onKeyDown(int keyCoder,KeyEvent event){
    2     if(webView.canGoBack() && keyCoder == KeyEvent.KEYCODE_BACK){
    3            webview.goBack();   //goBack()表示返回webView的上一页面
    4  
    5             return true;
    6      }
    7      return false;
    8 }
     
    附上我的例子:
     

    package my.mynative;

    import android.app.Activity;
    import android.os.Bundle;
    import android.webkit.WebView;
    import android.webkit.WebViewClient;

    public class MynativeActivity extends Activity {

     private WebView mywebview;

     @Override
     public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState); // get the WebView's instance

      mywebview = new WebView(this); // 设置WebView属性,能够执行Javascript脚本

      mywebview.getSettings().setJavaScriptEnabled(true); // 加载指定url的网页

      mywebview.loadUrl("http://www.baidu.com/");

      mywebview.setWebViewClient(new WebViewClientDemo());

      setContentView(mywebview);
     }

     private class WebViewClientDemo extends WebViewClient {

      @Override
      // 在WebView中而不是默认浏览器中显示页面
      public boolean shouldOverrideUrlLoading(WebView view, String url) {

       view.loadUrl(url);

       return true;

      }
     }
    }

  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/cosiray/p/2422925.html
Copyright © 2011-2022 走看看