什么是webview ?

Andoid 平台,SDK 中有一个控件叫 WebView

IOS/MacOS 平台,SDK 中有一个控件叫 WebView/UIWebView/WKWebView(UIView/NSView);

这些控件,用于移动端 APP 嵌入(Embed) Web 技术,加载 Web 内容;基于 Webkit 引擎

一 WebView到底是什么

     1 WebView是一种控件,它基于webkit引擎,因此具备渲染Web页面的功能。  

  2 基于Webview的混合开发,就是在 Anddroid os(安卓)/I os(苹果)原生APP里,通过WebView控件嵌入Web页面。

  你手机里有淘宝软件吧?
  就是外边是个原生APP的壳,内容是H5页面(基于html+css+js的Web页面)。

  包括淘宝app,阿里云app(笔者目前做阿里云app组件库的开发)等等在内,现在的移动端混合开发软件,如果对于交互渲染要求不是特别高的项目,基本都是这么玩的。

     3

 webview与H5是相辅相成的,webview可以理解为我们手机上内嵌的一种浏览器,可以加载一些网页的页面,而H5可以理解成是html5,html5可以简单的理解成它是html的一种技术,webview可以加载html5

二、Webview常用方法

1、加载URL

可以根据资源分为三种:

//方式1. 加载一个网页: 
webView.loadUrl(“百度一下,你就知道“);

//方式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) 
// 参数说明: 
// 参数1:需要截取展示的内容 
// 内容里不能出现 ’#’, ‘%’, ‘\’ , ‘?’ 这四个字符,若出现了需用 %23, %25, %27, %3f 对应来替代,否则会出现异常 
// 参数2:展示内容的类型 
// 参数3:字节码

转载:基于H5的混合开发介绍(一)WebView_weixin_30360497的博客-CSDN博客

  • 11
    点赞
  • 64
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android应用程序中,WebView是一个常用的控件,用于在应用程序中显示网页。在混淆代码时,需要注意WebView的混淆问题。以下是一些混淆WebView时需要注意的事项: 1.在proguard-rules.pro文件中添加以下代码,以避免WebView的混淆: ```proguard -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, java.lang.String, android.graphics.Bitmap); public boolean *(android.webkit.WebView, java.lang.String); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceResponse); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest); } -keepclassmembers class * extends android.webkit.WebViewClient { public android.webkit.WebResourceResponse *(android.webkit.WebView, java.lang.String, java.lang.String); } -keepclassmembers class * extends android.webkit.WebViewClient { public android.webkit.WebResourceResponse *(android.webkit.WebView, android.webkit.WebResourceRequest); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebBackForwardList); } -keepclassmembers class * extends android.webkit.WebViewClient { public boolean *(android.webkit.WebView, android.view.KeyEvent); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.net.http.SslError); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.ClientCertRequest); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.HttpAuthHandler, java.lang.String, java.lang.String); } -keepclassmembers class * extends android.webkit.WebViewClient { public boolean *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.os.Bundle); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceError, android.webkit.WebResourceResponse); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceResponse, android.os.Bundle); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceResponse, android.webkit.WebResourceError); } -keepclassmembers class * extends android.webkit.WebViewClient { public void *(android.webkit.WebView, android.webkit.WebResourceRequest, android.webkit.WebResourceResponse, android.webkit.WebResourceError, android.os.Bundle); } ``` 2.在WebViewClient实例中,需要保留onPageFinished()方法中的代码,以确保WebView正确加载图片。具体代码如下: ```java @Override public void onPageFinished(WebView view, String url) { if(!webView.getSettings().getLoadsImagesAutomatically()) { webView.getSettings().setLoadsImagesAutomatically(true); } } ``` 3.在WebView初始化时,需要设置加载图片的选项。具体代码如下: ```java public void init() { if(Build.VERSION.SDK_INT >= 19) { webView.getSettings().setLoadsImagesAutomatically(true); } else { webView.getSettings().setLoadsImagesAutomatically(false); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值