一、WebView的用法
遇到一些特殊的请求:在程序中展示一些网页。但加载和显示网页都是浏览器的任务,在不打开浏览器的情况下先写一个浏览器,webView控件可以在应用程序中嵌入一个浏览器,从而展示各种各样的网页。
1.新建一个WebViewTest项目,修改activity_main.xml,定义了一个WebView控件,用于显示网页。
<?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>
2.修改MainActivity.java
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支持javaScript脚本 webView.setWebViewClient(new WebViewClient());//目标网页在应用程序打开 webView.loadUrl("https://www.baidu.com/"); WebSettings webSettings = webView.getSettings(); webSettings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); //设置缓存 webSettings.setDomStorageEnabled(true);//设置适应Html5 重点是这个设置 } }
注意:android9.0系统默认禁止http协议,即禁止明文传输,必须使用https来通讯;默认uri是https开头的,如果你的uri是http,要到AndroidManifest.xml加入这一句:android:usesCleartextTraffic="true"
如果你想打开你手机的默认浏览器,可以参考:https://www.go2live.cn/program/android/%E8%A7%A3%E5%86%B3-android-neterr_unknown_url_scheme.html
3.修改AndroidManifest.xml,添加权限的声明:
<uses-permission android:name="android.permission.INTERNET"/>
运行程序,可以看到,WebViewTest这个程序现在已经具备了一个简易浏览器的功能,不仅成功将百度的首 页展示了出来,还可以通过点击链接浏览更多的网页。
参考文章:
1.https://www.cnblogs.com/Mrchengs/p/10714362.html