如何在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析。
一、WebView
当我们需要在应用里展示别人的网页,如何简单的实现?肯定不是自己编写一个网页,Android提供了一个WebView控件,借助它可以实现在自己的应用里嵌入一个网页。
WebView的作用
- 显示和渲染Web页面
- 直接使用html文件(网络上或本地assets中)作布局
- 可和JavaScript交互调用
WebView的缺陷
可以参考这篇文章:https://www.cnblogs.com/lee0oo0/p/4026774.html
WebView的使用
那么如何使用WebView?下面通过一个嵌入百度的例子实现。
新建WebViewTest项目,
修改activity_main.xml代码,如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<WebView
android:id="@+id/web_view"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
修改MainActivity代码,如下:
getSettings()方法可以设置一些浏览器的属性;setJavaScriptEnabled()方法让WebView支持JavaScript脚本;setWebViewClient()方法作用是当需要从一个网页跳转到另一个网页时,希望目标网页仍然在当前WebView中显示,而不是打开系统浏览器;loadUrl()方法将网址传入,即可展示相应网页内容。
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView webView = (WebView) findViewById(R.id.web_view);
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient());
webView.loadUrl("http://www.baidu.com");
}
}
最后还需要声明网络权限,修改AndroidManifest.xml文件,如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.webviewtest">
<uses-permission android:name="android.permission.INTERNET"/>
............
效果如下:
二、WebView的其他用法