首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

onPageFinished()有时不会被调用

onPageFinished()是Android WebView中的一个回调方法,用于通知应用程序网页加载完成的事件。然而,有时候这个方法可能不会被调用,可能是由于以下几个原因:

  1. 网页加载失败:如果网页加载过程中发生错误,例如网络连接问题或者网页不存在等,onPageFinished()方法可能不会被调用。在这种情况下,可以通过监听onReceivedError()方法来处理加载失败的情况。
  2. JavaScript的异步加载:如果网页中包含异步加载的JavaScript代码,这些代码可能会导致网页的加载时间延长,从而延迟onPageFinished()方法的调用。可以通过在onPageFinished()方法中执行JavaScript代码的方式来解决这个问题。
  3. 缓存机制:WebView可能会使用缓存来加载网页,如果缓存中已经存在网页的副本,并且没有过期,那么onPageFinished()方法可能不会被调用。可以通过设置WebView的缓存模式来控制缓存的行为,例如通过调用setCacheMode()方法来设置缓存模式为LOAD_NO_CACHE,强制WebView每次都从网络加载网页。
  4. onPageStarted()方法的调用顺序:onPageFinished()方法是在onPageStarted()方法之后被调用的,如果onPageStarted()方法中发生了异常或者被阻塞,可能会导致onPageFinished()方法不被调用。可以通过检查onPageStarted()方法的实现,确保其正常执行。

综上所述,如果onPageFinished()方法有时不会被调用,可以通过检查网页加载失败、处理JavaScript的异步加载、调整缓存机制以及确保onPageStarted()方法的正常执行来解决这个问题。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动浏览器(X5内核):腾讯云移动浏览器是基于腾讯X5内核的移动浏览器解决方案,提供更快速、稳定和安全的网页浏览体验。详情请参考:https://cloud.tencent.com/product/x5
  • 腾讯云Web应用防火墙(WAF):腾讯云Web应用防火墙(WAF)是一种针对Web应用的安全防护服务,可以帮助用户识别和阻止各种Web攻击,保护网站和应用的安全。详情请参考:https://cloud.tencent.com/product/waf
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

WPF 调用 InvalidateVisual 触发 OnRender 的原因

我昨天和头像大人在解决一个坑,发现调用了 InvalidateVisual 的时候,不会触发 OnRender 方法。...优先级的任务触发的时候才会调用 但是本文解决的问题是,为什么调用 InvalidateVisual 方法的时候,等待下一次的 Dispatcher 或等很久都没有进入 OnRender 方法 先通过一个简单的代码让大家能测试...原理是在控件的 OnRender 触发条件是控件需要在视觉树上,如果控件不在视觉树上,如被从上层元素移除或元素被设置 Collapsed 那么 OnRender 将不会触发 为什么此时设计让 OnRender 触发...原因是既然这个控件就不想显示出来了,那么还调用他的 OnRender 方法做什么 有没有例外项?...其实选择 Hide 只是元素不可见,本身元素还是在视觉树上面的,所以此时的渲染方法还是会被调用 注意本文说的 OnRender 方法为渲染方法这个说法不准确,应该是指导渲染方法 本作品采用

2K20

初学python,调用固定参,固定参

函数调用时的参数传递方式:(调用函数) 传递方式有以下四种: 位置传参 序列传参 关键字传参 字典关键字传参 ----------------------------------------------...myfun1(*L1) myfun1(*T1) myfun1(*S1) (3)关键字传参: 关键字传参是指传参时,按形参的名称给形参赋值 实参和形参按形参名进行匹配(可以按位置顺序进行匹配...第四种方式,但是有时候我们想把元组值就作为星号参数的参数值,那么该怎么办呢?好办,在元组值前加上“”即可,不过此时,就不能在加了“”的元组后,追加任何值了。...double): print("Common args: ", common) print("Double args: ", double) 第一种方式,星号(*)参数传值...第三种方式,有时候我们想把字典值就作为星号参数的参数值,那么该怎么办呢?同单星号参数,在字典值前加上“**”,同时其后不能添加任何值。

1.6K20

Android中WebView的基本配置与填坑记录大全

onPageStarted() 开始载入页面调用的,我们可以设定一个 loading 的页面,告诉用户程序在等待网络响应。 onPageFinished() 在页面加载结束时调用。...webview lead memory 能搜到很多结果 甚至还有给谷歌提交的issue 哈哈,我也无法给出一个清晰的答案 在什么时候 什么版本那些手机上一定会出现内存泄露, 但是根据我自己的monkey结果来看,有时...有空的同学可以跟一下源码,onPageFinished 在不同的内核里 调用的时机都不一样。说实话 我也很醉。。。这个问题 有完美解决方案的 请知会我一下。。。 9、后台无法释放js 导致耗电。...这个可能很少有人知道,我也是被投诉过 才了解,在有的手机里,你如果webview加载的html里 有一些js 一直在执行比如动画之类的东西,如果此刻webview 挂在了后台 这些资源是不会被释放 用户也无法感知...很多人都想要一个效果:网页更新cookie 设置完cookie以后 刷新页面即可生效。

2.4K20

Android 和 Webview 如何相互 sayHello(一)

这里,我们着重来讲解一下 js 调用 android 的简单过程。 js 直接调用 android 这里,我们分方法来介绍一下上面对应的调用方式。...对于此类 callback 有时候为了节省内存在执行完毕后,还需要删除该 callback // jsCode call jsbridge jsbridge.getDeviceId(callback)...jsbridge.qqVisibilityChange(cb) }else if(UA.isWeChat){ jsbridge.wxVisibilityChange(cb) } ... } 所以,有时候你调用一个...但是,有时候有些 app 为了解决该 jsbridge.js 侵入业务层业务引入的步骤,选择使用由客户端直接侵入加载。...反映到 webviewClient 里面的事件也就是: onPageStarted onPageFinished 最保险的方式,是直接在 onPageFinished 事件里面注入 JS 文件.

1.8K30

Spring AOP拦截从对象内部调用的方法原因

authority() { System.out.println("模拟执行权限检查"); } } 接下来我就以比喻进行说明了,明白我的比喻的前提你要知道动态代理是什么,打个恰当的比方吧...我们系统中调用的就是这个代理类的findInforAll方法,而该方法中的 this.findDataBaseA();this.findDataBaseB();是不会被AOP拦截的,因为AOP拦截的包名和类名很明显和代理类的不一样...,所以这就是为什么内部调用的方法无法拦截的原因。...我们可能会想,在外部调用两次beanA,第一次调用method1,第二次调用method2,这样做可以解决问题,但是这样的直接后果是我们的逻辑代码将变得紊乱,并非所有的场景下都可以通过这样的设计来完成。...true 它是ProxyConfig的一个参数,默认是false,如果设置这个参数,那么上述java

2.5K10

基于腾讯x5开源库,提高60%开发效率

3.1 如何使用项目js调用 3.2 js的调用时机分析 04.问题反馈 4.0.1 视频播放宽度超过屏幕 4.0.2 x5加载office资源 4.0.3 WebView播放视频问题 4.0.4 无法获取...onPageFinished()或者onPageStarted()方法中注入js代码 做过WebView开发,并且需要和js交互,大部分都会认为js在WebViewClient.onPageFinished...在点onPageFinished被激发的页面可能还没有被解析。...* 有时候,针对自己的网站,可以让一些特定的网站,不管其证书是否存在问题,都让用户信任它。 * 坑:有时候部分手机打开页面报错,绝招:让自己网站的所有二级域都是可信任的。...当我们初次打开App时:客户端首次打开都会请求api.yc.com,其DNS将会被系统缓存。然而当打开WebView的时候,由于请求了不同的域名,需要重新获取i.yc.com的IP。

3.4K30

Flutter使用JsBridge方式处理Webview与H5通信的方法

同时,为了和H5页面进行数据交换,有时候还需要借助JSBridge来实现客户端与H5之间的通讯。除此之外,Hybrid开发模式也需要Webview与JS做频繁的交互。...this.javascriptChannels, this.navigationDelegate, this.gestureRecognizers, this.onPageStarted, this.onPageFinished...= null), super(key: key); 其中,比较常见的属性的含义如下: onWebViewCreated:在WebView创建完成后调用,只会被调用一次; initialUrl:初始load...Flutter部分); gestureRecognizers:手势监听; onPageFinished:WebView加载完毕时的回调。..., // h5 可以通过navigator.userAgent判断当前环境 javascriptMode: JavascriptMode.unrestricted, // 启用 js交互,默认启用

2.8K10

那些年在WebView上踩过的坑

3.0以上 4.4以下很多手机会出现这种情况 解决方案: 在activity的onDestroy方法里手动的将webiew设置成 setVisibility(View.GONE) 4.onPageFinished...当前正在加载的网页产生跳转的时候这个方法可能会被多次调用,多数开发者都是参考的http://stackoverflow.com/questions/3149216/how-to-listen-for-a-webview-finishing-loading-a-url-in-android...6.后台无法释放js 导致耗电 问题描述: 在有的手机里,你如果webview加载的html里 有一些js 一直在执行比如动画之类的东西,如果此刻webview 挂在了后台,这些资源是不会被释放 用户也无法感知...然后再销毁webview: rootLayout.removeView(webView); webView.destroy(); 14.处理WebView中的非超链接请求(如Ajax请求) 有时候需要加上请求头...很多人都想要一个效果:网页更新cookie 设置完cookie以后 刷新页面即可生效。

1.8K31

关于WebView 重定向行为导致的多次加载的问题

使用 WebView 时,我们通常会重写以下方法: shouldOverrideUrlLoading() onPageStarted() onPageFinished() 一、WebView...内部点击连接,他们的回调顺序是这样的: 1、如果是固定的地址: shouldOverrideUrlLoading() – onPageStarted()- onPageFinished()...2、如果是重定向地址,在跳转到目的地址之前会不断重定向,每一次重定向都会回调: redirection: onPageStarted()- shouldOverrideUrlLoading()- onPageFinished...补充知识:webview多次调用onPageFinished问题 项目中遇到了webview多次调用onPageFinished问题,相关文章比较多,但是很多是无效的,甚至有些需要服务器修改。...public void onPageFinished(WebView view, String url) { super.onPageFinished(view, url); if

3.8K20

android学习笔记----WebView的url跳转时方法执行顺序体会

Override public void onPageStarted(WebView view, String url, Bitmap favicon) {// 可能涉及重定向导致再次调用此方法...当访问的目标地址不需要重定向的时候: 方法的执行顺序:onPageStarted()-->onPageFinished() 这又有了一个问题,当我点击第二个按钮访问google的时候,出现了问题!...public void onPageStarted(WebView view, String url, Bitmap favicon) {// 可能涉及重定向导致再次调用此方法...Override public void onPageStarted(WebView view, String url, Bitmap favicon) {// 可能涉及重定向导致再次调用此方法...====少了这一句加载国外网站需要等待很久,加上立马显示不能访问google } @Override public void onPageFinished

74210
领券