文章目录
- 一、前言
- 二、具体操作
- 1、创建工程
- 2、创建layout
- 3、添加WebView控件
- 4、创建webview界面的Java Class
- 5、webview逻辑代码
- 6、从MainActivity启动MyWebViewActivity
- 7、配置AndroidManifest.xml
- 三、运行测试
一、前言
做个小实验,使用AndroidStudio
制作一个简单的WebView
浏览器。
最终效果
二、具体操作
1、创建工程
点击菜单Fiew > New > New Module...
选择Phone & Tablet Module
名字叫WebViewDemo
选择Empty Activity
主Activity
叫MainActivity
创建成功
2、创建layout
在layout
文件夹鼠标右键,点击New > Layout resource file
取名为activity_webview
,点击OK
3、添加WebView控件
拖动WebView
控件到界面中
编辑id
为mywebview
4、创建webview界面的Java Class
在包文件上鼠标右键,New > Java Class
类名叫MyWebViewActivity
,父类为AppCompatActivity
重写onCreate
函数,指明布局文件为上面创建的activity_webview
5、webview逻辑代码
核心就是loadUrl
接口,具体代码如下:
package com.example.webviewdemo;import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.webkit.WebView;
import android.webkit.WebViewClient;import androidx.appcompat.app.AppCompatActivity;public class MyWebViewActivity extends AppCompatActivity {private WebView webView ;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_webview);initWebView();Intent intent = getIntent();String url = intent.getStringExtra("url");LoadUrl(url);}private void initWebView() {webView = (WebView) findViewById(R.id.mywebview);WebSettings webSettings = webView.getSettings();webView.setVerticalScrollBarEnabled(false);webSettings.setSaveFormData(false);webSettings.setSavePassword(false);webSettings.setBuiltInZoomControls(false);webSettings.setSupportZoom(false);webSettings.setJavascriptCanOpenWindowsAutomatically(true);webView.requestFocus(View.FOCUS_DOWN);webView.setOnTouchListener(new View.OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {switch (event.getAction()) {case MotionEvent.ACTION_DOWN:case MotionEvent.ACTION_UP:if (!v.hasFocus()) {v.requestFocus();}break;}return false;}});webView.setWebViewClient(new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {if(url.startsWith("http:") || url.startsWith("https:") ) {view.loadUrl(url);return false;}else{Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));startActivity(intent);return true;}}});}private void LoadUrl(String url){webView.loadUrl(url);}
}
6、从MainActivity启动MyWebViewActivity
在MainActivity
界面中加个按钮,点击的时候启动MyWebViewActivity
package com.example.webviewdemo;import androidx.appcompat.app.AppCompatActivity;import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Button btn = (Button)findViewById(R.id.button);btn.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String url = "http://www.baidu.com";Intent intent=new Intent(MainActivity.this,MyWebViewActivity.class);intent.putExtra("url", url);startActivity(intent);}});}
}
7、配置AndroidManifest.xml
添加INTERNET
权限
<uses-permission android:name&#61;"android.permission.INTERNET">uses-permission>
在application
节点中添加&#xff0c;支持https
android:usesCleartextTraffic&#61;"true"
完整的AndroidManifest.xml
如下
<manifest xmlns:android&#61;"http://schemas.android.com/apk/res/android"package&#61;"com.example.webviewdemo"><uses-permission android:name&#61;"android.permission.INTERNET">uses-permission><applicationandroid:allowBackup&#61;"true"android:icon&#61;"&#64;mipmap/ic_launcher"android:label&#61;"&#64;string/app_name"android:roundIcon&#61;"&#64;mipmap/ic_launcher_round"android:supportsRtl&#61;"true"android:usesCleartextTraffic&#61;"true"android:theme&#61;"&#64;style/AppTheme"><activity android:name&#61;".MainActivity"><intent-filter><action android:name&#61;"android.intent.action.MAIN" /><category android:name&#61;"android.intent.category.LAUNCHER" />intent-filter>activity><activity android:name&#61;".MyWebViewActivity">activity>application>
manifest>
三、运行测试