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

在loadUrl之后调用loadData时,Oreo WebView背景色错误

在调用loadUrl方法加载网页后,再调用loadData方法时,可能会导致Oreo版本的WebView背景色错误的问题。

这个问题是由于Oreo版本的WebView在加载网页时会异步执行,而loadData方法是同步执行的。当调用loadData方法时,可能会在网页加载完成之前执行,导致背景色错误。

解决这个问题的方法是在调用loadData方法之前,先判断网页是否已经加载完成。可以通过WebViewClientonPageFinished方法来判断网页加载是否完成,然后再调用loadData方法。

以下是示例代码:

代码语言:java
复制
WebView webView = new WebView(context);
webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        // 网页加载完成后再调用loadData方法
        webView.loadData(data, mimeType, encoding);
    }
});

webView.loadUrl(url);

在这个示例中,我们通过设置WebViewClient并重写onPageFinished方法来监听网页加载完成的事件。当网页加载完成后,再调用loadData方法加载数据。

关于WebView的更多信息,你可以参考腾讯云的产品介绍页面:腾讯云 WebView

希望这个答案能够解决你的问题!如果还有其他疑问,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android WebView全面总结

使用WebView并不需要开通网络权限 网上有文章说webview需要开通internet权限,否则会出Web page not available错误,这是不对的,出现Web page not available...Webview加载内容 (1)加载assets目录下的本地网页 一般我们都是把html文件放在assets目录下, WebView调用assets目录下的本地网页和图片等资源非常方便,使用形如 mWebView.loadUrl...(2)加载远程网页 mWebView.loadUrl("http://www.google.com"); (3)使用 LoadData 或者 loadDataWithBaseURL方法加载内容 有时候我们的...四中特殊字符,平时测试,你的数据,你的数据里含有这些字符,但不会出问题,当出问题,你可以替换下。 %,会报找不到页面错误,页面全是乱码。乱码样式见符件。...###重写shouldOverrideUrlLoading指定url 指定只有url里包含eoe.cn的时候才webview里打开,否则还是启动浏览器打开.

2.4K80
  • Android混合开发教程之WebView的使用方法总结

    html片段 String data = " Html 数据"; webView.loadData(data, "text/html", "utf-8"); 实测会发现loadData会导致中文乱码...更多的处理网页的地址的解析和渲染,例如 onLoadResource//加载资源响应   onPageStart//加载页面响应   onPageFinish//加载页面结束响应   ...onReceiveError//加载出错响应   onReceivedHttpAuthRequest//获取返回信息授权请求 6.)设置WebChromeClient主要辅助WebView处理...调用requestFocuswebview设置节点 webSettings.setBuiltInZoomControls(true); //设置支持缩放 webSettings.setJavaScriptCanOpenWindowsAutomatically...,但是通过addjavascriptInterface这种方式Android 4.2以下版本存在一定的安全隐患,Android 4.2以上也需要加@JavascriptInterface注解,否则无法调用

    1.3K20

    Android应用界面开发——WebView

    如果打开WebView过程中跳转到浏览器,则通过设置WebViewClient来是其WebView中显示。...并重写了onBackPressed()方法,当WebView不为空且WebView可以回退,返回上一个WebView界面,而不是直接回退到上一个Activity。...二.WebView加载HTML代码 ---- WebView提供了一个loadData(String data, String mimeType, String encoding)方法,该方法可用于加载并显示...三.WebView中的JavaScript调用Android方法 ---- WebView调用Android方法需要三步: 调用WebView关联的WebSettings的setJavaScriptEnabled...JavaScript脚本中通过刚才暴露的name对象调用Android方法。 写一个JavaScript中调用Android方法的实例,该实例界面包含一个WebView组件,用于显示HTML页面。

    83830

    Android开发笔记(六十四)网页加载与JS调用

    onReceivedError : 收到错误信息。 onReceivedSslError : 收到ssl错误。...因为WebView加载网页是异步的,所以loadUrl方法调用js无法直接获得返回值。多数情况只能在js代码中回调Android方法,从而间接获取Android调用js的返回值。...2、如果js调用android代码,logcat报错“Uncaught TypeError: Object [object Object] has no method”,那是因为Android4.2以上版本默认不开放...5、如果android与js存在嵌套调用(即A调用B,B内部又去调用A),那么Android4.4.2之后务必要保证两个调用在同一个线程中,不然运行时会报错“java.lang.Throwable:...具体的解决方法,是调用WebView对象的post方法,post的Runnable任务中再去调用js方法,示例代码如下: private final class Contact { //网页的

    6.4K10

    Android开发必知--WebView加载html5实现炫酷引导页面

    最后通过loadUrl()方法加载了网址。至于该WebView如何发送请求,如何解析服务器,这些细节对我们来说是完全透明的,我们不需要关心。   ...另外需要一提的是,当使用WebView浏览网页,不做处理的话,按下手机的返回键会直接结束WebView所在的Activity,通过重写onKeyDown()方法,当WebView可以返回,让其执行返回操作...WebView提供了一个loadData(String data, String mimeType, String encoding)方法,该方法可用于加载并显示HTML代码,不过这个方法加载html...(new WebViewClient()); 11 //使用简单的loadData()方法总会导致乱码,有可能是Android API的Bug 12 //webView.loadData...接下来为本篇重点,通过加载H5的方式可以很轻松做出炫酷的引导页,当然前提你得先做出或者找到一个很好H5引导页文件。需要说明的都已经文章开头说过了,就不废话了,先上效果图: ? ? ?

    3.3K100

    webview和js交互

    今天主要总结两点:一是使用Js去调用客户端公有方法,二是从客户端调用Js中的方法 一、JS调用客户端公有方法 上例子:(PS:不会写JS,就网上找了一段js代码) 新建项目,项目的assets...及之后的版本只有带有 JavascriptInterface 注释的public方法才能够被js访问。...(new JsObject(), "injectedObject"); webView.loadData("", "text/html", null); webView.loadUrl("javascript...(系统版本4.2以下要考虑的安全问题先mark下这个blog: Android WebView的Js对象注入漏洞解决方案http://blog.csdn.net/leehong2005/article...MainActivity的布局文件中添加一个按钮,点击该按钮后,调用js中的funFromjs方法: package com.aliao.web; import android.support.v7

    4.2K50

    WebView完全解读

    概述 WebView控件可以自己的应用程序中显示本地或者Internet上的网页。 WebView是一个使用WebKit引擎(4.4之后基于Chromium)的浏览器控件。...(true); // 调用LoadUrl,载入url webView.loadUrl("http://www.baidu.com"); // 调用Activity...对于4.4后的WebView,我们需要注意下下面这些问题: 多线程 如果你子线程中调用WebView的相关方法,而不在UI线程,则可能会出现无法预料的错误。...虽然是真理,我们却往往不自觉的 犯一些错误违背它,一个开发中常犯的错误就是:UI线程中去等待JavaScript 的回调。...,一种是:我们自己assets目录下创建一个用于显示错误信息的 HTML页面,当发生错误,即onReceivedError()被调用的时候我们调用webViewloadUrl跳到我们 的错误页面,比如

    3.2K10

    WebView最详解

    Android的 Webview低版本和高版本采用了不同的 webkit版本内核,4.4后使用了 Chrome内核,而 WebView可以对 url请求、页面加载、渲染、页面交互进行处理。...↳android.webkit.WebView 其继承关系如上图所示,下面是一个简单的代码示例: //WebView类下面的方法,通常使用的就是我们用来加载Url mWebView.loadUrl...charset=UTF-8", null); 这里还有很多 WebView的用法,实际项目中会碰到很多场景应用到以下方法,所以各位花粉一定要了解,我们将每个方法都非常清晰的描述了一哈,希望可以给已经开发的新花粉提供帮助...*当一个安全的来源(origin)试图从一个不安全的来源加载资源配置WebView的行为。...view, WebResourceRequest request, WebResourceError error) { //加载页面的服务器出现错误调用 error.getErrorCode

    1.2K30

    这是一份Android全面&详细的-Webview使用攻略

    webView.pauseTimers() //恢复pauseTimers状态 webView.resumeTimers(); //销毁Webview //关闭了Activity,如果Webview...就必须销毁Webview //但是注意:webview调用destory,webview仍绑定在Activity上 //这是由于自定义webview构建传入了该Activity的context对象...复写shouldOverrideUrlLoading()方法,使得打开网页调用系统浏览器, 而是WebView中显示 webView.setWebViewClient(new WebViewClient...App里面使用webview控件的时候遇到了诸如404这类的错误的时候,若也显示浏览器里面的那种错误提示页面就显得很丑陋了,那么这个时候我们的app就需要加载一个本地的错误提示页面,即webview如何加载一个本地的页面...的onRecievedError方法 //该方法传回了错误码,根据错误类型可以进行不同的错误分类处理 webView.setWebViewClient(new WebViewClient(){

    4.3K20

    android调用服务端的js

    关闭这个对话框之后,它会列出当前SDCard上面的所有文件列表,如下图所示 ?...图四:错误结果 4,解决方案 1,Android 4.2以上的系统 Android 4.2以上的,google作了修正,通过Java的远程方法上面声明一个@JavascriptInterface...(new JsObject(), "injectedObject");   webView.loadData("", "text/html", null);   webView.loadUrl("javascript...3,当JS调用onButtonClick或onImageClick,就会回调到Java层中的onJsPrompt方法,我们再解析出方法名,参数,对象名,再反射调用方法。...刚开始在当WebView正常加载URL后去加载Js,但发现会存在问题,如果当WebView跳转到下一个页面,之前加载的Js就可能无效了,所以需要再次加载。

    1.8K90

    android--WebView使用addJavascriptInterfacesdk 17的问题

    调用WebView 的addJavascriptInterface,使用android:targetSdkVersion="10"是没有问题的,能够触发事件,但是毕竟使用版本一般都使用最新的,...我开发为了追求新,然后使用了android:targetSdkVersion="17"的属性,开始使用时并没有什么问题,大多数手机是可以使用的,比如中兴的N986,小米的MIMU4.1的系统是没有问题的...,系统为2.3的几个机型也没看出问题,后来三星Note3上出问题啦,调用不了这个事件,我也纠结了半天,后来在网上查找原因,是去年android的漏洞所致, 所以修改方法有两个: 1,修改android:...查找官方文件:说17以上需要添加一个接口JavascriptInterface才能用,后来仔细看了官方的Demo才找到,就是蓝色加粗部分。...(new JsObject(), "injectedObject"); webView.loadData("", "text/html", null); webView.loadUrl("javascript

    86220

    混合开发之WebView秘笈

    webView.pauseTimers() //恢复pauseTimers状态 webView.resumeTimers(); //销毁Webview //关闭了Activity,如果Webview...就必须销毁Webview //但是注意:webview调用destory,webview仍绑定在Activity上 //这是由于自定义webview构建传入了该Activity的context对象...// 复写shouldOverrideUrlLoading()方法,使得打开网页调用系统浏览器, 而是WebView中显示 webView.setWebViewClient(new WebViewClient...("your_url"); //设置是否支持JS交互,不设置页面显示不出来 webView.getSetting().setJavaScriptEnabled(true); java调用js: webView.loadUrl...这里我的思路是,开启缓存的前提下,WebView加载页面检测网络变化,倘若在加载页面用户的网络突然断掉,我们应当更改WebView的缓存策略。

    2K30

    iOS下JS与OC互相调用(一)--UIWebView 拦截URL

    目前我已知的JS 与 OC 交互的处理方式: 1.JS 中做一次URL跳转,然后OC中拦截跳转。...同样的,如果连续使用window.location.href执行两次OC原生调用,也有可能导致第一次的操作被取消掉。所以我们使用自定义的loadURL,来避免这个问题。...答:便于OC 中做拦截处理,减少JS中调用一些OC 没有实现的方法webView 做跳转。...因为我OC 中拦截URL ,根据scheme (即haleyAction)来区分是调用原生的方法还是正常的网页跳转。然后根据host(即//后的部分getLocation)来区分执行什么操作。...OC调用JS方法 关于将OC 执行结果返回给JS 需要注意的是: 如果回调执行的JS 方法带参数,而参数不是字符串,不要加单引号,否则可能导致调用JS 方法失败。

    3.6K40
    领券