Android WebView常见问题

=============================================================================

<>1.load网址


//找到控件

web_view = (WebView) findViewById(R.id.web_view);

//加载网页

web_view.loadUrl(weburl);

如果你是真机调试,且手机系统比较高的话,应该会报错:网页无法加载,应为:net :ERR_CLEARTEXT_NOT_PERMITTED

解决方式于第二个某块

<>2.设置一些属性


web_view = (WebView) findViewById(R.id.web_view);

WebSettings webSettings = web_view.getSettings();

// 让WebView能够执行javaScript

webSettings.setJavaScriptEnabled(true);

// 让JavaScript可以自动打开windows

webSettings.setJavaScriptCanOpenWindowsAutomatically(true);

//是否允许访问文件

webSettings.setAllowFileAccess(true);

// 设置缓存

webSettings.setAppCacheEnabled(true);

// 设置缓存模式,一共有四种模式

webSettings.setCacheMode(webSettings.LOAD_CACHE_ELSE_NETWORK);

// 支持缩放(适配到当前屏幕)

webSettings.setSupportZoom(true);

// 将图片调整到合适的大小

webSettings.setUseWideViewPort(true);

// 支持内容重新布局

webSettings.setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);

// 设置可以被显示的屏幕控制

webSettings.setDisplayZoomControls(true);

// 设置默认字体大小

webSettings.setDefaultFontSize(12);

web_view.loadUrl(weburl);

这里就只介绍本例子用的一些属性了,如需了解更多,请前往Android中文文档

<>3.写一个监听


web_view.setWebViewClient(new WebViewClient() {

//当新的 url 即将被加载的时候---->用户点击了 Webview 内容里面的一个超链接的时候会触发该方法的调用

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

return false;

}

//在页面加载开始时调用。

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

super.onPageStarted(view, url, favicon);

}

//在页面加载结束时调用。

@Override

public void onPageFinished(WebView view, String url) {

weburl=url;

super.onPageFinished(view, url);

}

});

这里主要介绍三个方法

<>4.返回上一次浏览的页面


@Override

public boolean onKeyDown(int keyCode, KeyEvent event) {

if ((keyCode == KeyEvent.KEYCODE_BACK)) {

if (web_view.canGoBack()) {

web_view.goBack();

return true;

} else {

finish();

return true;

}

}

return false;

}

<>二、遇到的一些问题

========================================================================

<>1.ERR_CLEARTEXT_NOT_PERMITTED


原因:于 Android P (9.0)限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉,所以如果访问没有https协议的网站默认不不可以访问的。

解决:

在AndroidManifest.xml文件的application标签中添加

android:usesCleartextTraffic="true"

<>2.便页面支持缩放


WebSettings webSettings =web_view.getSettings();

webSettings.setJavaScriptEnabled(true);

webSettings.setBuiltInZoomControls(true);

webSettings.setSupportZoom(true);

<>3.自适应屏幕


WebSettings webSettings =web_view.getSettings();

webSettings.setUseWideViewPort(true);//设置此属性,可任意比例缩放

webSettings.setLoadWithOverviewMode(true);

<>三、源码

===================================================================

WebActivity.java

public class WebActivity extends Activity {

private WebView web_view;

private String weburl = "http://www.jimengjia.com/";

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_web);

initView();

webViewClient();

webViewSetting();

}

private void initView() {

web_view = (WebView) findViewById(R.id.web_view);

}

private void webViewClient(){

web_view.setWebViewClient(new WebViewClient() {

//当新的 url 即将被加载的时候---->用户点击了 Webview 内容里面的一个超链接的时候会触发该方法的调用

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

return false;

}

//在页面加载开始时调用。

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

super.onPageStarted(view, url, favicon);

}

//在页面加载结束时调用。

@Override

public void onPageFinished(WebView view, String url) {

最后

面试一面会问很多基础问题,而这些基础问题基本上在网上搜索,面试题都会很多很多。最好把准备一下常见的面试问题,毕竟面试也相当与一次考试,所以找工作面试的准备千万别偷懒。面试就跟考试一样的,时间长了不复习,现场表现肯定不会太好。表现的不好面试官不可能说,我猜他没发挥好,我录用他吧。

96道前端面试题:

常用算法面试题:

前端基础面试题:

内容主要包括HTML,CSS,JavaScript,浏览器,性能优化

rl) {

最后

面试一面会问很多基础问题,而这些基础问题基本上在网上搜索,面试题都会很多很多。最好把准备一下常见的面试问题,毕竟面试也相当与一次考试,所以找工作面试的准备千万别偷懒。面试就跟考试一样的,时间长了不复习,现场表现肯定不会太好。表现的不好面试官不可能说,我猜他没发挥好,我录用他吧。

96道前端面试题:

  • 外链图片转存中...(img-GqOjZXlf-1725880214728)

常用算法面试题:

  • 外链图片转存中...(img-PxHCOQv4-1725880214729)

前端基础面试题:

内容主要包括HTML,CSS,JavaScript,浏览器,性能优化

相关推荐
阿巴斯甜1 天前
Android 报错:Zip file '/Users/lyy/develop/repoAndroidLapp/l-app-android-ble/app/bu
android
Kapaseker1 天前
实战 Compose 中的 IntrinsicSize
android·kotlin
xq95271 天前
Andorid Google 登录接入文档
android
黄林晴1 天前
告别 Modifier 地狱,Compose 样式系统要变天了
android·android jetpack
冬奇Lab2 天前
Android触摸事件分发、手势识别与输入优化实战
android·源码阅读
城东米粉儿2 天前
Android MediaPlayer 笔记
android
Jony_2 天前
Android 启动优化方案
android
阿巴斯甜2 天前
Android studio 报错:Cause: error=86, Bad CPU type in executable
android
张小潇2 天前
AOSP15 Input专题InputReader源码分析
android
_小马快跑_2 天前
Kotlin | 协程调度器选择:何时用CoroutineScope配置,何时用launch指定?
android