我正在开发基于HTML5画布的游戏,该游戏在现有应用程序的WebView中运行。在第一次运行游戏时,它会在后台成功加载,所有日志都表明它已准备就绪并正在运行。但是,WebView中不显示任何内容。如果我加载其他东西到WebView中,然后返回到我的游戏,它会像以前一样成功加载,然后呈现。什么可以防止画布在第一次运行时显示,仅用于后续重新加载?HTML5 - Canvas无法在Android WebView的第一次加载时渲染

对于细节:

我得到的游戏加载完成首次没有控制台错误。

在iOS版本的应用程序中运行时,游戏加载成功。

应用于canvas元素的CSS不会呈现,这表明在显示它们之前加载我的资源不是问题。

我调查研究,试图使资产显示前,因此后续重新加载被这些现在高速缓存图像固定引起了正在显示的所有问题,但我不能找到有关帆布未能什么在Android中完全显示。

这里是由的WebView加载HTML:

Darts

,这是我的onload脚本:

var bootGame =() => {

//create canvas element

let canvas = document.createElement('canvas');

canvas.id = "darts-canvas";

canvas.width = 740;

canvas.height = 400;

let gameContainer = document.getElementById("darts-game-container");

gameContainer.appendChild(canvas);

//scale canvas to view window

let gamepadViewport = document.getElementById("darts-game-container"),

gamepadCanvas = document.getElementById("darts-canvas"),

viewportWidth = window.innerWidth,

canvasWidth = gamepadCanvas.width,

viewportHeight = window.innerHeight,

canvasHeight = gamepadCanvas.height;

let scaleRatio = Math.min(viewportWidth/canvasWidth, viewportHeight/canvasHeight);

if (scaleRatio < 1) {

gamepadViewport.style.transform = `scale(${scaleRatio}, ${scaleRatio})`;

gamepadViewport.style.webkitTransform = `scale(${scaleRatio}, ${scaleRatio})`;

gamepadViewport.style.mozTransform = `scale(${scaleRatio}, ${scaleRatio})`;

gamepadViewport.style.oTransform = `scale(${scaleRatio}, ${scaleRatio})`;

}

//initialise Loader

Darts.Loader = new Loader();

//initialise GamePad API, then initialise core classes when loaded

GamePadClient = new GamePadClient();

GamePadClient.initialise()

.then(() => {

//load all scripts

return Darts.Loader.loadScripts(LIBS_TO_LOAD, COMMON_LIB_PATH, LIB_NAME_SUFFIX)

})

.then(() => {

return Darts.Loader.loadScripts(SCRIPTS_TO_LOAD, COMMON_SCRIPT_PATH, SCRIPT_NAME_SUFFIX)

})

.then(() => {

//initalise core classes

Darts.Controller = new Controller();

Darts.Logic = new Logic();

Darts.Display = new Display();

Darts.GameProps = new GameProps();

Darts.GameState = new GameState();

//loads display elements and scripts, then inits game once complete

Darts.Controller.initGame();

});

}

2017-09-20

lhmcneil

+0

你能分享创建和处理webview的相关代码吗? –

+0

@amacf我已经添加了相关的代码示例 –

android web canvas,HTML5 - Canvas无法在Android WebView的第一次加载时渲染相关推荐

  1. android poi webview,java-Android(4.4)WebView第二次加载时不显示ifra...

    我正在尝试从本地存储在webview页面中显示,第一次加载页面时看起来还可以,但是当我删除webview并再次添加它时,它看起来像在图片上(对于4.4,在以前的android版本中只是黑屏): web ...

  2. android 4.2 webview,java-Android(4.4)WebView第二次加载时不显示ifra...

    我正在尝试从本地存储在webview页面中显示,第一次加载页面时看起来还可以,但是当我删除webview并再次添加它时,它看起来像在图片上(对于4.4,在以前的android版本中只是黑屏): web ...

  3. html5.js百度网盘,HTML5 Canvas+js仿百度网盘扫描文件过程加载动画

    HTML5 Canvas+js仿百度网盘扫描文件过程加载动画 这是一款简单的HTML5 Canvas+js仿百度网盘扫描文件过程加载动画效果,网盘文件扫描百分比加载动画特效. var w=docume ...

  4. android网络转圈,android基于dialog加载时转圈圈很好的demo

    [实例简介] 这是一个android基于dialog加载时转圈圈很好的完整demo,很适合新手学习,希望对有需要的朋友能得到帮助 [实例截图] [核心代码] dialog_anim └── dialo ...

  5. android 自定义域名,Android基于Retrofit2改造的可设置多域名的网络加载框架

    Android基于Retrofit2改造的可设置多域名的网络加载框架 1.使用说明 添加仓库 ``` allprojects { repositories { google() jcenter() m ...

  6. Android插件化学习之路(一)之动态加载综述

    前段时间,公司项目完成了插件化的开发,自己也因此学习了很多Android插件化的知识,于是想把这些内容记录下来,本次带来Android插件化的第一篇:动态加载综述 Android插件化学习之路(一)之 ...

  7. html5移动端底部效果,spring mvc +HTML5实现移动端底部上滑异步加载更多内容分页效果...

    代码实现 1).前端代码: 前端代码需要用到jquery和zepto,大家在网上自己下载,下面是页面的代码: contentType="text/html; charset=UTF-8&qu ...

  8. web.xml 里context-param 、listener、 filter、servlet 加载顺序

    1.web.xml中context-param .listener. filter.servlet 加载顺序与其位置无关,不是listener在context-param 前面就先加载listener ...

  9. java web配置dll文件_JavaWeb项目中dll文件动态加载方法解析(详细步骤)

    相信很多做Java的朋友都有过用Java调用JNI实现调用C或C++方法的经历,那么Java Web中又如何实现DLL/SO文件的动态加载方法呢.今天就给大家带来一篇JAVA Web项目中DLL/SO ...

最新文章

  1. 设CPU中各部件及其相互连接关系如下图所示。图中W是写控制标志,R是读控制标志,R 1 和R 2 是暂存器
  2. android studio怎么设置log保存txt_【Stata写论文】log命令的使用和分析结果导出
  3. Python服务器管理模块psutil学习使用
  4. WIncc7.4入门
  5. Could not import the lzma module
  6. Java常用工具类-根据物流单号,从快递100中获取物流详细信息,包含发货,签收等
  7. python中字节(bytes)是如何转换成整型(long)的?
  8. linux命令中ll和ls的区别
  9. 大数据薪水大概多少_大数据工资一般多少
  10. 机器人学:(3)机器人运动学
  11. VideoProc for Mac(全能影片处理软件)
  12. Android 蓝牙 HFP sco 和esco链路的异同分析
  13. IT大佬告诉你大数据有哪些特点,新人学习必知
  14. x265-1.7版本-common/pixel.cpp注释
  15. Selenium中级 | 在Selenium中模拟键盘操作
  16. 【CSS练习】IT修真院--练习3-简单界面
  17. HTML学生个人网站作业设计——html css javascript简单的大学生书店网页制作(13页) web期末作业设计网页 web结课作业的源码 web网页设计实例作业
  18. 科技爱好者周刊:第 70 期
  19. “中国电信天翼物联”推进计划启动
  20. php微博视频教程,新浪微博开发实战 THINKPHP框架新浪微博视频教程 项目实战 88集...

热门文章

  1. vscode 格式化json
  2. Mysql8.0安装+navicat for Mysql安装+navicat for Mysql。
  3. 199 美元的 iPhone 都可以想了,时代真的变了?
  4. 新年第一天,3000台Apache服务器宕机
  5. 谷歌苹果齐降税,却没能拯救开发者的“钱包”!
  6. 教育行业 A 股 IPO 第一股,如何做成程序员培训这门生意 | 极客头条
  7. 四部门联合约谈蚂蚁集团有关人员;苹果11月11日再开发布会;树莓派 400 发布|极客头条
  8. 瞧瞧,这样的代码才叫 Pythonic
  9. HarmonyOS 2.0:正式开源,年底面向开发者发布智能手机 Beta 版本
  10. 为什么谈及硬件,必言软件?软硬件协同让开源世界“阴阳调和”