闪屏后白屏出现一瞬间
Posted
技术标签:
【中文标题】闪屏后白屏出现一瞬间【英文标题】:White screen appears for a split second after splash screen 【发布时间】:2017-01-05 14:13:30 【问题描述】:我使用 IBM mobileFirst 7.0(我也使用 Ionic)制作了一个应用程序,我注意到在启动屏幕之后半秒左右,出现了一个白屏。我在网上搜索,有人说取消注释
autoHideSplash: false,
在 wlInitOptions 中添加以下代码:
var app = angular.module('app.controllers', []);
//manually hide splash screen
app.run(function($ionicPlatform)
$ionicPlatform.ready(function()
setTimeout(function()
WL.App.hideSplashScreen();
, 100);
);
)
在我的控制器中(我只有 1 个)可以解决这个问题。然而什么也没发生。 (我也更改了超时,但似乎没有任何改变)
我想在闪屏消失后立即看到我的应用程序,而没有白屏。我该怎么做?
更新和解决方案:
阅读 Idan 的回答后,我进行了一些更改以解决问题。
首先在我的 index.html 中,我在我的<head>
末尾加载 MobileFirst,在 Ionic 和所有控制器加载之后。我改变了它,现在在我首先加载的<head>
标签中:
<!-- mobileFirst initialization -->
<script src="js/wlInit.js"></script>
<script src="js/messages.js"></script>
然后我加载 Ionic 和控制器。
我还将控制器中 WL.App.hideSplashScreen() 的超时时间从 100 更改为 1500。
不再出现白屏:D
【问题讨论】:
请看这里***.com/… forum.ionicframework.com/t/… 我认为首先你需要清理项目 @SantoshShinde 我已经阅读了您的第二个链接(我描述了我在问题中所做的步骤)。我不认为我可以在我的 Worklight 项目中安装 cordova splashscreen。 【参考方案1】:我看到您正在使用 WL.App API,但您确定您在正确的地方使用它吗?此 API 只能在 function wlCommonInit
被调用后调用。
所以我认为你走在正确的道路上。听起来您确实应该尝试延长初始屏幕的持续时间,因为您的应用程序中的某些内容需要一段时间才能加载(因此白色闪烁),因此通过将初始屏幕延长一点时间,让加载任何内容,然后删除启动屏幕可能是一种可能的解决方法。
-
确保仅在调用
wlCommonInit
之后调用此 API
再增加一些持续时间。
在此处阅读有关 API 的更多信息:https://mobilefirstplatform.ibmcloud.com/tutorials/en/foundation/7.0/advanced-client-side-development/common-ui-controls/#splashscreen
【讨论】:
我想我在调用 wlcommonInit 之后正在使用 Wl.App API。我会做更多的实验来确定。 你是对的!我做了一些更改,现在已修复。编辑我的问题以包括我所做的。非常感谢您的回答!【参考方案2】:您还可以使用 ng-cloak 来隐藏任何由角度引起的白色闪光。
【讨论】:
你能解释一下吗? 这里是来自 Angular 网站docs.angularjs.org/api/ng/directive/ngCloak的链接 是的,我知道 ng-cloak 的作用,但它如何隐藏白色闪光?例如,我应该在 body 标签中使用它吗? 我在 body 标记中使用了它,其中我有一个来自数据库的项目的动态列表。每次我添加一个项目时,都会由于回发而导致白色闪烁。为了缓解这种情况,我只是将 ng-cloak 放在我的动态表所在的 body 标记中。 确实很有趣!谢谢你的回答!以上是关于闪屏后白屏出现一瞬间的主要内容,如果未能解决你的问题,请参考以下文章