Cordova – 飞溅后的白色屏幕,在控制台中没有例外

我已经离开了我的Cordova应用程序一段时间,但昨天刚刚做了一个新的克隆并注意到它有“白屏死机”症状 – 启animation面显示,程序加载……然后我就是得到一个空白的屏幕。 更多细节:

  • CLI:Cordova 6.1.1,android 5.1.1,ios 4.1.1
  • 我没有使用任何特殊的插件来显示启animation面 – 只是我的config.xml文件中的 元素。
  • 这种情况在iOS和Android上都有发生,包括本地构建和使用PhoneGap Build(即调试和发布)。
  • 在iOS中(使用Safari的开发工具)或Android(使用Chrome的开发工具),控制台中没有任何资源缺失的例外。
  • 我用我最后一次知道的工作版本做了一个差异 ,并且没有任何东西popup来。 我看到了一个未定义的Underscore引用,但是我支持该更改并且它没有解决任何问题 – 我认为无论如何我都会在控制台中看到exception。

Cordova / PhoneGap最近做了什么可能导致这种情况? 关于如何隔离这个的任何想法? 我真的很难过。

Solutions Collecting From Web of "Cordova – 飞溅后的白色屏幕,在控制台中没有例外"

那很难看。 事实certificate,有一个exception被抛出,它只是被浏览器开发工具提起太早了(Safari,Chrome分别为iOS和Android)。 当我通过浏览器目标( cordova platform add browser等)运行时,exception确实出现了。所以浏览器平台对于我猜的东西很有用。 🙂

就我而言,cordova-sqlite-storage插件在我更新所有内容时突破了API更改。 解决方案是将插件固定到config.xml文件中的早期版本。

所以,经验教训:

  • 如果您怀疑在启动过程中抛出了exception,则可以使用浏览器平台对其进行跟踪。
  • 使用config.xml中的spec参数将插件固定到特定版本。 这将为您节省一些心痛。
  • [来自@jcesarmobile的另一个选项,下面]在浏览器开发工具中点击刷新也将触发exception。 太好了!

我将回到config.xml并固定其他项目 – 并按照上面的建议进行一些清理。 再次感谢大家。

我管理你的应用程序,这是我遵循的步骤。

1)首先,您需要在config.xml中声明Splash屏幕首选项以及splash screen插件位置。 这就是我认为你所缺少的

        

2)在config.xml中声明你的启animation面图像,你已经完成了。

我建议你将图像保存在android项目的默认密度文件夹(ldpi,mdpi,hdpi,xhdpi等)而不是screen / android文件夹,因为它将简化你的项目结构。

            

3)将Splash屏幕插件类添加到org.apache.cordova.splashscreen包下的android项目结构中或安装启animation面Cordova插件

https://cordova.apache.org/docs/en/3.1.0/cordova/splashscreen/splashscreen.html

4)最后也是最重要的一步,你必须在你的www文件夹中有cordova.js

Cordova.js的资产

之后,我能够运行您的网络应用程序

在此处输入图像描述

我是android开发人员我猜你可能需要为iOS做类似的事情

使用带有ember.js的cordova时遇到了类似的问题。 这是关于我的应用程序的url更改策略。

看看这个答案 ,它可能与你的问题有关。

尝试将此首选项添加到config.xml,这可能是问题所在

  

如果要在config.xml中添加splash,则应该为iOS和Android安装splash-screen插件以使其正常工作。 或者没有splash-screen插件你可以尝试做的是制作一个带有HTML的闪屏,将你的身体分为两部分:内容和登录。 然后设置内容样式display:none。 当应用程序完成加载后,您只需设置加载屏幕显示:无和内容屏幕显示:阻止或任何您想要的

并且您在config.xml缺少以下首选项

    

唯一对我有用的修复程序可以在这里find: http : //www.codingandclimbing.co.uk/blog/ionic-2-fix-splash-screen-white-screen-issue-14

基本上编辑你的config.xml文件。 splashscreen设置应如下所示:

          

在我的案例中, head缺少标签导致白屏。

1 >>如果您怀疑在启动期间抛出了exception,您可以使用浏览器平台对其进行跟踪。 2 >>使用config.xml中的spec参数将插件固定到特定版本。 这将为您节省一些心痛。

就我而言,我不小心在app.js中评论了状态定义。

我的问题出在ES6上,它在iPhone和Android 6上完美运行,但它不适用于Android 4和5。

在我的情况下,我在第一个屏幕仍然安装之前放了一个ALERT。

我在config.xml中添加了这些行

   

当我将screendelay设为3000时,我也有一个黑屏。所以我改为6000.我认为cordova需要一些时间来加载你的js,css和图像文件。

我有这种情况并解决了它。

就我而言,它与此代码类似:

 $scope.images.push({ id: i, src: "http://placehold.it/50x50" , pstb, trno}); 

上面的代码在Android 7.0上运行良好,但在android 4.4.4上启动后只有白屏

改为:

 $scope.images.push({ id: i, src: "http://placehold.it/50x50", pstb: pstb, trno: trno}); 

在所有设备上运行(至少我的所有设备)