还是会出现下面的错误页面。第一步:在项目文件夹建一个子文件夹res/xml,新建network_security_config.xml文件,保存到res/xml下:_android browser无法打开">
赞
踩
在Android中,使用WebView加载网页时,在AndroidManifest.xml添加了网络权限 <uses-permission android:name="android.permission.INTERNET" />还是会出现下面的错误页面。
第一步:在项目文件夹建一个子文件夹res/xml,新建network_security_config.xml文件,保存到res/xml下:
- <?xml version="1.0" encoding="utf-8"?>
- <network-security-config>
- <base-config cleartextTrafficPermitted="true" />
- </network-security-config>
第二步:修改AndroidManifest.xml文件,在application节点增加networkSecurityConfig配置:
android:networkSecurityConfig="@xml/network_security_config"
第三步:用WebView加载网页
activity_main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
- android:layout_height="match_parent" android:configChanges="orientation|keyboard"
- android:screenOrientation="landscape"
- tools:context=".MainActivity">
-
- <WebView android:id="@+id/c131_webkit"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- tools:ignore="MissingConstraints" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
- package com.qingshan.webbroswer;
-
- import androidx.appcompat.app.AppCompatActivity;
-
- import android.os.Bundle;
- import android.view.KeyEvent;
- import android.view.View;
- import android.view.Window;
- import android.view.WindowManager;
- import android.webkit.WebSettings;
- import android.webkit.WebView;
- import android.webkit.WebViewClient;
-
- public class MainActivity extends AppCompatActivity {
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- //不显示标题
- setTheme(R.style.Theme_AppCompat_NoActionBar);
- //全屏
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
-
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
-
- WebView browser=(WebView)findViewById(R.id.c131_webkit);
- WebSettings settings = browser .getSettings();
- settings.setJavaScriptEnabled(true);// 让WebView能够执行javaScript
- settings.setDomStorageEnabled(true);
- settings.setJavaScriptCanOpenWindowsAutomatically(true);// 让JavaScript可以自动打开windows
- settings.setAppCacheEnabled(true); // 设置缓存
- settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 设置缓存模式,一共有四种模式
- settings.setSupportZoom(true);// 支持缩放(适配到当前屏幕)
- settings.setUseWideViewPort(true); // 将图片调整到合适的大小
- settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); // 支持内容重新布局,一共有四种方式 默认的是NARROW_COLUMNS
- settings.setDisplayZoomControls(true); // 设置可以被显示的屏幕控制
- settings.setDefaultFontSize(12); // 设置默认字体大小
-
- browser.loadUrl("http://rc114.com");
- //browser.loadData("<html><body><h2>Hello , world!</h2></body></html>", "text/html", "UTF-8");
-
- //实现:WebView里的链接,都在自身打开,不调用系统浏览器
- browser.setWebViewClient(new WebViewClient() {
- @Override
- public boolean shouldOverrideUrlLoading(WebView view, String url) {
- view.loadUrl(url);
- return true;
- }
-
- });
-
- //实现:按手机回退键,如果浏览器有上一个网页,则返回上一个网页
- browser.setOnKeyListener(new View.OnKeyListener() {
- @Override
- public boolean onKey(View v, int keyCode, KeyEvent event) {
- if (event.getAction() == KeyEvent.ACTION_DOWN) {
- if (keyCode == KeyEvent.KEYCODE_BACK && browser.canGoBack() ) {
- browser.goBack();
- return true;
- }
- }
- return false;
- }
- });
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。