网络技术——WebView
WebView是Android自带的一个可用于网站显示的控件
一、布局设置
在activity_main.xml
中使用WebView
组件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:layout_marginBottom="10dp">
<EditText
android:id="@+id/url"
android:layout_weight="7"
android:hint="请输入网址"
android:inputType="text"
android:layout_width="0dp"
android:layout_height="wrap_content" />
<View
android:layout_width="0dp"
android:layout_weight="0.5"
android:layout_height="match_parent" />
<Button
android:id="@+id/jumpToWeb"
android:layout_weight="2.5"
android:layout_width="0dp"
android:text="跳转"
android:layout_height="wrap_content" />
</LinearLayout>
<WebView
android:id="@+id/webView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
-
EditText:用于用户输入网址
-
View:占位
-
Button:跳转按钮
-
WebView:显示网站的控件
为了让EditText、View、Button
按照比例分布在水平布局上,需要设置android:layout_width="0dp"
和android:layout_weight="2"
二、WebView属性控制
在MainActivity
中设置WebView
的属性
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView = findViewById<WebView>(R.id.webView)
val url = findViewById<TextView>(R.id.url)
val jumpToWeb = findViewById<Button>(R.id.jumpToWeb)
jumpToWeb.setOnClickListener{
// 使得webView支持JavaScript脚本
webView.settings.javaScriptEnabled = true
// 当需要从一个网页跳转到另外一个网页时,希望目标网页仍旧在当前WebView中显示,而不是打开系统浏览器
webView.webViewClient = WebViewClient()
// 设置网址跳转链接
webView.loadUrl(url.text.toString())
}
}
}
三、权限申请
由于本程序使用到了网络功能,而访问网络是需要声明权限的,因此我们还得修改AndroidManifest.xml
文件,并加入权限声明
<uses-permission android:name="android.permission.INTERNET" />