热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

android开发分享解决WebView通过URL加载H5界面出现空白的问题

1.权限问题:在配置文件中需要设置网络权限

1.权限问题:在配置文件中需要设置网络权限

2.基本配置问题

websettings websettings = webview.getsettings(); //支持缩放,默认为true。

.setusewideviewport(true); // 缩放至屏幕的大小 websettings

.setloadwithoverviewmode(true); //设置默认编码

websettings .setdefaulttextencodingname(“utf-8”); ////设置自动加载图片

websettings .setloadsimagesautomatically(true);

.settings.setJavascriptenabled(true);// 设置可以运行js脚本
.settings.setsupportzoom(false);// 用于设置webview放大
.settings.setbuiltinzoomcontrols(false);

3.出现uncaught typeerror: cannot call method ‘getitem’ of null异常

这个行出现了异常,这个正是html5的特性,一个本地存储的东西,存储量比COOKIE大,但是这个必须在android的webview用代码启动才行

解决方法:启动webview的html5的本地存储功能。

webview.getsettings().setdomstorageenabled(true);

webview.getsettings().setappcachemaxsize(1024*1024*8);

string appcachepath = getapplicationcontext().getcachedir().getabsolutepath();

webview.getsettings().setappcachepath(appcachepath);

webview.getsettings().setallowfileaccess(true);

webview.getsettings().setappcacheenabled(true);

4.调用getdeviceid 方法的时候,js没有加载完毕,导致出现空白

解决办法:

  webview.setwebviewclient(new webviewclient() {  @override  public boolean shouldoverrideurlloading(webview view, string url) {  view.loadurl(url);  return true;  }    @override  public void onpagefinished(webview view, string url) {  super.onpagefinished(view, url);  //在这里执行你想调用的js函数  if(!flag_get_deviceid){  load();  }  }    @override  public void onreceivederror(webview view, int errorcode, string description, string failingurl) {  super.onreceivederror(view, errorcode, description, failingurl);  }    });    private boolean flag_get_deviceid=false;  public void load(){  string key="";  string androidid="";  try{  androidid = secure.getstring(getcontentresolver(),secure.android_id);  log.d(tag, "androidid:"+androidid);}catch(exception e){  log.e(tag, "");  }finally{  string script=string.format("Javascript:getdeviceid('"+androidid+"')");  webactdetail.evaluateJavascript(script, new valuecallback() {    @override  public void onreceivevalue(string value) {  log.d(tag, "onreceivevalue value=" + value);    if(value!=null){  flag_get_deviceid=true;  }  }});  }  }  

5.android手机版本问题,现在h5界面实现多样化,导致很多h5界面在低版本的机型上无法展示或者样式错乱

解决办法:一种是重新设计低版本的h5界面,另一种设置项目最低版本

补充知识:webview-使用webview依次访问url列表

有时候,我们需要使用webview依次访问url列表,来刷新网页;

1.1 webview创建

webview = (webview) findviewbyid(r.id.webview);

1.2 webview设置参数

    // 设置缓存    webview.getsettings().setcachemode(websettings.load_cache_else_network);    // 不设置缓存    // webview.getsettings().setcachemode(websettings.load_no_cache);    // 清理缓存    webview.clearcache(true);    // 清理历史记录    webview.clearhistory();    // 清理COOKIEs    COOKIEsyncmanager.createinstance(this);    COOKIEsyncmanager.getinstance().startsync();    COOKIEmanager.getinstance().removesessionCOOKIE();    // 设置可以支持缩放    webview.getsettings().setsupportzoom(true);    // 设置出现缩放工具    webview.getsettings().setbuiltinzoomcontrols(true);    webview.getsettings().setJavascriptenabled(true);

1.3 获取url列表

  int index = 0;     string [] strlist = new string[]{"https://www.jb51.net",  "https://www.jd.com","https://www.csdn.net",https://www.baidu.com};

1.4 webview设置webviewclient

  // 直接创建webviewclient    webview.setwebviewclient(new webviewclient() {     @override     public void onpagefinished(webview view, string url) {      super.onpagefinished(view, url);      index++;      if(index>artstr.length){         }else {       webview.clearcache(true);       webview.clearview();       log.i("===Onpagefinished====", index + "=======");       refreshwebpage(index);      }     }    });

1.5 webview加载url

   public void refreshwebpage(int index) {    string csdnstr = urlstr + artstr[index];       // 直接调用url    webview.loadurl(csdnstr);   }

以上这篇解决webview通过url加载h5界面出现空白的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持<编程笔记>。


推荐阅读
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 深入解析HTML5字符集属性:charset与defaultCharset
    本文将详细介绍HTML5中新增的字符集属性charset和defaultCharset,帮助开发者更好地理解和应用这些属性,以确保网页在不同环境下的正确显示。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 本文介绍如何使用 Python 的 DOM 和 SAX 方法解析 XML 文件,并通过示例展示了如何动态创建数据库表和处理大量数据的实时插入。 ... [详细]
  • 本文详细介绍了如何使用Python中的smtplib库来发送带有附件的邮件,并提供了完整的代码示例。作者:多测师_王sir,时间:2020年5月20日 17:24,微信:15367499889,公司:上海多测师信息有限公司。 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • 织梦系统多条件联动筛选功能详细教程及删除操作指南
    多条件联动筛选功能广泛应用于图片展示、装修设计、机械设备和在线商城等场景,通常筛选条件应聚焦于用户最关心的要素,而非涵盖所有可能的选项。在DedeCMS中,多条件筛选的PHP开发并未内置删除已选条件的功能,但通过理解PHP筛选与JS筛选的不同机制,实现这一功能相对简单且易于操作。 ... [详细]
  • Webpack 初探:Import 和 Require 的使用
    本文介绍了 Webpack 中 Import 和 Require 的基本概念和使用方法,帮助读者更好地理解和应用模块化开发。 ... [详细]
  • 利用python爬取豆瓣电影Top250的相关信息,包括电影详情链接,图片链接,影片中文名,影片外国名,评分,评价数,概况,导演,主演,年份,地区,类别这12项内容,然后将爬取的信息写入Exce ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
  • 属性类 `Properties` 是 `Hashtable` 类的子类,用于存储键值对形式的数据。该类在 Java 中广泛应用于配置文件的读取与写入,支持字符串类型的键和值。通过 `Properties` 类,开发者可以方便地进行配置信息的管理,确保应用程序的灵活性和可维护性。此外,`Properties` 类还提供了加载和保存属性文件的方法,使其在实际开发中具有较高的实用价值。 ... [详细]
  • 技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告
    技术日志:使用 Ruby 爬虫抓取拉勾网职位数据并生成词云分析报告 ... [详细]
author-avatar
手机用户2702932962_848
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有