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,浏览器,性能优化

相关推荐
用户693717500138411 小时前
曾经安卓开发人手一个的 EventBus,为什么现在没人爱用了?
android·android studio
九皇叔叔13 小时前
MySQL ORDER BY 性能优化详解:Using filesort、联合索引、ASC/DESC 与覆盖索引
android·adb
OriginCoding14 小时前
用 AI Agent 协作完成一个 Android TOTP 应用:从需求边界到 v1.0.0
android·ai编程
杉氧16 小时前
React 灵魂:深入剖析 Hooks 与副作用(Side Effects)陷阱
android·前端·react native
又见情义17 小时前
RK3568 + RTL8211F 网络唤醒(WOL)功能适配全记录
android·网络·驱动开发
用户09340777351417 小时前
HarmonyOS WPS Open SDK 实践:registerApp 鉴权与就绪门禁
android·typescript·harmonyos
jike_202617 小时前
会议离线录音APP:无网络记录能力对比
android·智能手机·语音识别
always_TT18 小时前
【Python 字符串格式化:format() 方法】
android·开发语言·python
恋猫de小郭18 小时前
AI 时代,一个优化 Flutter 的重复代码工具 Deslop
android·前端·flutter
RisunJan19 小时前
Android 面试知识点整理
android·面试·职场和发展