android webview

1;网络权限

<uses-permission android:name="android.permission.INTERNET"/>

2:

<WebView     

 android:id="@+id/webView" 

  android:layout_width="match_parent"

   android:layout_height="match_parent"          />

3:属性

  1. WebSettings settings = webView.getSettings();  
  1. settings.setJavaScriptEnabled(true);//.如果访问的页面中有Javascript,则webview必须设置支持Javascript

    // 若加载的 html 里有JS 在执行动画等操作,会造成资源浪费(CPU、电量)// 在 onStop 和 onResume 里分别把 setJavaScriptEnabled() 给设置成 false 和 true 即可//支持插件webSettings.setPluginsEnabled(true); //设置自适应屏幕,两者合用

    webSettings.setLoadWithOverviewMode(true); // 缩放至屏幕的大小//缩放操作
  2. webSettings.setUseWideViewPort(true); //将图片调整到适合webview的大小 

  3. webSettings.setSupportZoom(true); //支持缩放,默认为true。是下面那个的前提。

  4. webSettings.setBuiltInZoomControls(true); //设置内置的缩放控件。若为false,则该WebView不可缩放

  5. webSettings.setDisplayZoomControls(false); //隐藏原生的缩放控件//其他细节操作

  6. webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //关闭webview中缓存 webSettings.setAllowFileAccess(true); //设置可以访问文件 webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口 webSettings.setLoadsImagesAutomatically(true); //支持自动加载图片

  7. webSettings.setDefaultTextEncodingName("utf-8");//设置编码格式

  8.  

4:加载

  1.    webView = (WebView) findViewById(R.id.webView);  
  2.         //WebView加载web资源  
  3.        webView.loadUrl("http://baidu.com");  
  4.  

//方式2:加载apk包中的html页面 

 webView.loadUrl("file:///android_asset/test.html"); 

  //方式3:加载手机本地的html页面 

 webView.loadUrl("content://com.android.htmlfileprovider/sdcard/test.html"); 

  // 方式4: 加载 HTML 页面的一小段内容

WebView.loadData(String data, String mimeType, String encoding)

webView.loadData("<html><head>"+ body +"</head><body>" + htmlConntent + "</body></html>", "text/html; charset=UTF-8",null):


 

 

5:返回浏览器上一页

  1.  @Override  
  2.     public boolean onKeyDown(int keyCode, KeyEvent event) {  
  3.         if(keyCode==KeyEvent.KEYCODE_BACK)    {  
  4.             if(webView.canGoBack())   {  
  5.                 webView.goBack();//返回上一页面  
  6.                 return true;  
  7.             }  else  {  
  8.                 System.exit(0);//退出程序  
  9.             }  
  10.         }  
  11.         return super.onKeyDown(keyCode, event);  
  12.     }

 

//是否可以前进 Webview.canGoForward()

//前进网页Webview.goForward()

//以当前的index为起始点前进或者后退到历史记录中指定的steps//如果steps为负数则为后退,正数则为前进Webview.goBackOrForward(intsteps)


 

 

6 js交互

 

网页调用原生

 

    xy_wv.addJavascriptInterface(new Object() {//和javascript交互
        @JavascriptInterface
        public void getAppShare(final String backUrl) {
             
        }
        @JavascriptInterface
        public void locationReload(String url){
        }
        @JavascriptInterface
        public void setTitleParam(String appTitleParam){
            print(appTitleParam+"__________sdf__________________________");
        }
    }, "android_APP");
}

 原生调用网页webview.loadUrl("");

 

  xy_wv.loadUrl("javascript:jumpTab('3')");
  xy_wv.loadUrl("javascript:submitSearchForm(" + "'" + NUM + "'" + ")");

// JS代码 <script>// Android需要调用的方法

function callJS(){ alert("Android调用了JS的callJS方法"); }

</script>

 

通过WebViewevaluateJavascript()

mWebView.evaluateJavascript("javascript:callJS()", new ValueCallback<String>() {

@Override public void onReceiveValue(String value) {

//此处为 js 返回的结果 } });

 

 

https://www.jianshu.com/p/3c94ae673e2a

https://blog.csdn.net/carson_ho/article/details/64904691

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值