網絡篇筆記鏈接:
一、HttpURLConnection
二、Volley框架 + 使用Gson解析json數據
三、OkHttp3框架 + 使用Gson解析json數據
四、WebView組件
五、Android 9.0以上不能訪問網絡問題解決方法
===============================================================
提示:Android 9.0 版本之後的網絡訪問有問題的請看我的另一篇文章。
五、Android 9.0以上不能訪問網絡問題解決方法
WebView組件是用來瀏覽網頁的。使用方法也很簡單。
1、在佈局文件中加入下面的代碼
<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.1、在java文件中使用
webView.load(url);
2.2、重寫setWebViewClient方法,不然系統會調用自帶瀏覽器打開網頁
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
3、因爲要訪問互聯網,需要在AndroidManifest.xml文件中加入網絡權限
<uses-permission android:name="android.permission.INTERNET"/>
實例:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<WebView
android:id="@+id/wv"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
MainActivity.java
package com.t.component_webview;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebChromeClient;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private EditText etUrl;
private Button button;
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//獲取組件
etUrl = (EditText) findViewById(R.id.et_url);
button = (Button) findViewById(R.id.button);
wv = (WebView) findViewById(R.id.wv);
//按鈕的監聽事件
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//從編輯框中獲取url
final String url = etUrl.getText().toString();
//重寫setWebViewClient方法,不然系統會調用自帶瀏覽器打開網頁
wv.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(request.getUrl().toString());
return true;
}
});
//指定要加載的網頁
wv.loadUrl(url);
//默認情況下,WebView不支持javascript
//讓webView支持javascript
wv.getSettings().setJavaScriptEnabled(true);
//上面的設置雖然支持了js,但是卻不支持js的alert()彈窗
//設置webView支持js的alert()彈窗
wv.setWebChromeClient(new WebChromeClient());
}
});
}
}