天天看点

webview 手机浏览器设置_WebView实现不调用浏览器展示网页

当我们的程序需要某些特殊要求时,比如:需要在程序内加载并展示网页,但是又不希望调用浏览器时,我们应该怎么实现呢?我们都知道浏览网页都是通过浏览器,在地址栏中输入需要浏览的网页网址,或者在搜索栏中输入想要浏览的信息关键词进行搜索浏览。 什么是WebView?

  • WebView在Android平台上是一个特殊的View,它能用来显示网页,这个WebView类可以被用来在app中仅仅显示一张在线的网页,当然还可以用来开发浏览器。
  • WebView内部实现是采用渲染引擎(WebKit)来展示view的内容,提供网页前进后退、网页放大、缩小、搜索等功能。
  • WebView是一个基于WebKit引擎、展现Web页面的控件,Android的WebView在低版本和高版本采用了不同的WebKit版本内核。

如何实现WebView?

WebView的实现很简单,在需要显示网页的Activity布局文件中添加一个"WebView"控件,再设置其一些基本属性,代码如下:

<WebView    android:id="@+id/webView"    android:layout_width="match_parent"    android:layout_height="match_parent" />
           

属性也很简单,都是一些常用的属性:

  • android:id:给WebView添加唯一标识符,方便找到并进项操作
  • android:layout_width:指定WebView的宽度
  • android:layout_height:指定WebView的高度

添加好"WebView"控件并指定好其基本属性后,在Activity的java文件中对WebView进行配置,代码如下: 基本代码部分就不进行详细解释了,就是简单的声明并找到WebView,下面我们来一一讲解配置WebView的相关代码:

  • getSettings().setJavaScriptEnabled():使用该方法让WebView支持JavaScript脚本,因为网页大多都是使用JavaScript编写的。
  • loadUrl():在这个方法中传入需要展示的网页URL,也就是网址。
  • setWebViewClient( ):添加这个方法后,在WebView中打开网页时,系统会默认使用WebView进行网页的加载展示,否则会调用浏览器加载网页进行展示。

因为展示网页需要使用手机的访问网络功能,所以我们还需要在"AndroidManifest.xml"文件中添加网络权限,代码如下: 因为Android对数据传输的安全和保密机制,所以我们想要让应用程序使用明文网络流量,就需要在application头标签中加入下面代码(我们这里只是单纯的实现演示一个简单的WebView,所以使用明文流量,在现实程序开发中,数据安全是最重要的): 以上就实现了一个WebView,代码简简单单,我们来运行程序,看一下其是否能不调用浏览器进行网页的加载展示,如下图:

webview 手机浏览器设置_WebView实现不调用浏览器展示网页

通过运行结果可以看到,通过WebView,我们确实实现了在程序内不调用浏览器,进行网页的展示,并且可以在WebView中进行搜索浏览,但是有一个问题不知道大家有没有留意到,当我们点击"Back"键时,Activity直接关闭了,而不是返回上一个页面,这个现象会给用户带来很不好的使用体验,可以设想:当你在浏览器看完小视频时,想返回上一个页面,系统直接给你退出了程序,相信你可能会忍不住口吐芬芳。 那该怎么去解决这个问题呢?Android 提供了一个onKeyDown( )方法,我们来重写该方法,代码如下:

@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {    // 如果按下的按键是返回键并且webView可以返回,就执行webView返回    if (keyCode == KeyEvent.KEYCODE_BACK && mWebView.canGoBack()) {        mWebView.goBack();        return true;    }    return super.onKeyDown(keyCode, event);}
           

在上面代码中可以看到,我们在 onKeDown( ) 方法中传入了一个 keyCode 类型的参数,这个参数就是指我们按下了哪个按钮,在方法中加入 if 语句进行判断,如果 keyCode 是返回键,并且 WebView 能够返回,就执行WebView中的返回。 KeyEvent.KEYCODE_BACK 就是指返回事件的意思。简而言之就是判断按下的按键如果为返回键,并且网页能返回到上一个页面,就回到上一个页面,而不会退出Activity,现在再来运行一下程序,看一下是否能够在WebView中使用 "Back" 键实现页面返回功能:

webview 手机浏览器设置_WebView实现不调用浏览器展示网页

通过运行结果我们能发现,在我们在首页打开一个页面,在打开的页面中再打开第三个页面,此时,按下"Back"键,并没有退出Activity,而是返回到了上一个页面,再按下"Back"键,就返回到了首页,在主页中按下"Back"键,退出Activity,这是因为在首页按下"Back"键,此时的WebView没有上一个页面可返回了,所以会结束掉程序。 ok,以上就是一个简单的WebView的实现,下篇文章我们来讲解WebView常用的子类和其子类中的常用方法,这些方法能让我们程序中编写的WebView功能更加完善。 了解更多的Android学习知识信息,请关注我们的微信公众号:秉空课堂

webview 手机浏览器设置_WebView实现不调用浏览器展示网页