还是会出现下面的错误页面。第一步:在项目文件夹建一个子文件夹res/xml,新建network_security_config.xml文件,保存到res/xml下:_android browser无法打开">
当前位置:   article > 正文

解决Android上无法使用http协议_android browser无法打开第3方协议

android browser无法打开第3方协议

在Android中,使用WebView加载网页时,在AndroidManifest.xml添加了网络权限 <uses-permission android:name="android.permission.INTERNET" />还是会出现下面的错误页面。

第一步:在项目文件夹建一个子文件夹res/xml,新建network_security_config.xml文件,保存到res/xml下:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <network-security-config>
  3. <base-config cleartextTrafficPermitted="true" />
  4. </network-security-config>

第二步:修改AndroidManifest.xml文件,在application节点增加networkSecurityConfig配置:

  android:networkSecurityConfig="@xml/network_security_config"

第三步:用WebView加载网页

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:layout_width="match_parent"
  6. android:layout_height="match_parent" android:configChanges="orientation|keyboard"
  7. android:screenOrientation="landscape"
  8. tools:context=".MainActivity">
  9. <WebView android:id="@+id/c131_webkit"
  10. android:layout_width="fill_parent"
  11. android:layout_height="fill_parent"
  12. tools:ignore="MissingConstraints" />
  13. </androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java
  1. package com.qingshan.webbroswer;
  2. import androidx.appcompat.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.KeyEvent;
  5. import android.view.View;
  6. import android.view.Window;
  7. import android.view.WindowManager;
  8. import android.webkit.WebSettings;
  9. import android.webkit.WebView;
  10. import android.webkit.WebViewClient;
  11. public class MainActivity extends AppCompatActivity {
  12. @Override
  13. protected void onCreate(Bundle savedInstanceState) {
  14. //不显示标题
  15. setTheme(R.style.Theme_AppCompat_NoActionBar);
  16. //全屏
  17. getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.activity_main);
  20. WebView browser=(WebView)findViewById(R.id.c131_webkit);
  21. WebSettings settings = browser .getSettings();
  22. settings.setJavaScriptEnabled(true);// 让WebView能够执行javaScript
  23. settings.setDomStorageEnabled(true);
  24. settings.setJavaScriptCanOpenWindowsAutomatically(true);// 让JavaScript可以自动打开windows
  25. settings.setAppCacheEnabled(true); // 设置缓存
  26. settings.setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 设置缓存模式,一共有四种模式
  27. settings.setSupportZoom(true);// 支持缩放(适配到当前屏幕)
  28. settings.setUseWideViewPort(true); // 将图片调整到合适的大小
  29. settings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN); // 支持内容重新布局,一共有四种方式 默认的是NARROW_COLUMNS
  30. settings.setDisplayZoomControls(true); // 设置可以被显示的屏幕控制
  31. settings.setDefaultFontSize(12); // 设置默认字体大小
  32. browser.loadUrl("http://rc114.com");
  33. //browser.loadData("<html><body><h2>Hello , world!</h2></body></html>", "text/html", "UTF-8");
  34. //实现:WebView里的链接,都在自身打开,不调用系统浏览器
  35. browser.setWebViewClient(new WebViewClient() {
  36. @Override
  37. public boolean shouldOverrideUrlLoading(WebView view, String url) {
  38. view.loadUrl(url);
  39. return true;
  40. }
  41. });
  42. //实现:按手机回退键,如果浏览器有上一个网页,则返回上一个网页
  43. browser.setOnKeyListener(new View.OnKeyListener() {
  44. @Override
  45. public boolean onKey(View v, int keyCode, KeyEvent event) {
  46. if (event.getAction() == KeyEvent.ACTION_DOWN) {
  47. if (keyCode == KeyEvent.KEYCODE_BACK && browser.canGoBack() ) {
  48. browser.goBack();
  49. return true;
  50. }
  51. }
  52. return false;
  53. }
  54. });
  55. }
  56. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/949526
推荐阅读
相关标签
  

闽ICP备14008679号