Webview翻译API

如果你想在你的客户端应用中添加一个网页,你就可以使用webviewwebview这个类是来自于androidview类,它允许你将网页内容作为应用的一部分显示,它不包括任何网页的开发特性,比如各种控件和工具条,这都是web的内容,他只包括显示网页(也就是它只显示网页的内容)。

基本的使用方案中介绍使用webview是很有帮助的,当你想在你的应用中使用更新信息的时候,比如说一份用户指南,在这里你就可以创建一个activity包含一个webview,然后使用它来在线显示。

另一个使用webview的好处是如果你的应用需要提供给用户一些数据,那些数据是需要联网取回的,比如说email,如果这样的话,你就可以建一个webview,用来显示这些数据,比起先从网页获取数据再解析要好的多,同时,你也可以设计一个网页用来适应你的webview,让它可以在那下载。

下面介绍了如果使用webview和添加一些内容,比如浏览和添加JavaScript的支持在你的自己的开发应用中。

1、在布局文件中申明webview元素

<WebView 

        android:id="@+id/wv"

        android:layout_width="match_parent"

        android:layout_height="match_parent"

        />

2、使用loadUrl()来打开相应的网页

        WebView wv1;

        wv1=(WebView)findViewById(R.id.wv);

wv1.loadUrl("www.baidu.com");

//记得加http://协议,刚开始的时候没使用http://提示跟没有权限是一样的

3、添加相应的权限

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

如果没有这个权限,那么将会出现webpage not available

而且一般情况下,如果你在打开你的模拟器之前没网,即使你这么设置了也不可以联网,你的重新启动模拟器。最简单的方法是打开你的模拟器的浏览器看能不能联网

通过上述设置之后,当你打开网页,当你运行代码的时候它会通过浏览器来打开,而非你的webview来打开,因为还需设置

wv1.setWebViewClient(new WebViewClient());

给它一个默认的webviewclient对象,有这个设置之后,它就会在当前的webview中打开相应的网页,这儿除了上面一种方法,还有一个比较完整的方法

wv1.setWebViewClient(new WebViewClient(){

public boolean shouldOverrideUrlLoading(WebView view, String url) {

view.loadUrl(url);

return true;

}

}

);

实际上就是给它添加了一个方法,重写了它的shouldOverrideUrlLoading方法,我在模拟器上实现的时候没复写这个方法,也是可以在当前webview中打开网页的

4、当我们在一个activity中按下返回键,那么它就会执行退出这个activity,从而将原本的activity杀死,因为我们需要进行设置,实现activityonkeyDown方法

public boolean onKeyDown(int keyCode, KeyEvent event) {

//判断,当按下的是返回键,而且这个webview可以返回的时候,调用webview的返回方法

if(keyCode==KeyEvent.KEYCODE_BACK && wv1.canGoBack()){

wv1.goBack();

}

        //注意,这儿就不能调用父类的处理方式了,不然你是可以返回上一个界面,然后你的整个activity都会死掉,因此你应该直接返回true

//return super.onKeyDown(keyCode, event);

           Return  true;

}

5、如果你想让你的webview支持javascript,你必须在你的webview中确保它能够使用,你就应该在你的应用代码和javascript代码之间创建一个链接。

javaScript并没有被webview默认支持,你能够通过websetting让你的webview支持它,你也可以通过getsetting()来取回数据,然后setJavaScriptEnabled()来允许访问。

wv1.getSettings().setJavaScriptEnabled(true);


Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐