平台就绪中的离子闪屏 hide() 方法不起作用
Posted
技术标签:
【中文标题】平台就绪中的离子闪屏 hide() 方法不起作用【英文标题】:Ionic splashscreen hide() method in platform ready doesn't work 【发布时间】:2020-09-10 22:10:02 【问题描述】:平台准备就绪后,我无法隐藏启动画面。这仅在 ios 上是问题,仅在 testflight 应用程序上。我无法在本地使用cordova 10 构建它。当我使用 cordova 9 构建本地应用程序时(这是唯一的区别),此方法有效。
this.platform.ready().then(() =>
this.splashscreen.hide()
);
我确定所有导入都ok,都安装好了。
package.json: "cordova-ios": "^6.1.0", "cordova-plugin-splashscreen": "^6.0.0",
config.xml - 初始屏幕值
<preference name="SplashMaintainAspectRatio" value="true" />
<preference name="FadeSplashScreenDuration" value="1000" />
<preference name="SplashShowOnlyFirstTime" value="false" />
<preference name="SplashScreen" value="screen" />
<preference name="AutoHideSplashScreen" value="false" />
<preference name="loadUrlTimeoutValue" value="700000" />
<preference name="SplashScreenDelay" value="30000" />
<preference name="DisallowOverscroll" value="true" />
<preference name="FadeSplashScreen" value="false" />
有人知道吗?我试过添加setTimout,它不起作用。
【问题讨论】:
【参考方案1】:我们遇到了同样的问题。在 cordova-ios@6.x 他们pulled the splashscreen plugin into the platform itself。这也可以在最新文档的Supported Platforms 中看到。
我们发现对.hide()
的调用似乎在SplashScreenDelay
之后触发了隐藏。因此,如果您摆脱了 SplashScreenDelay
设置,我敢打赌,您对 Hide()
的调用将按您的预期开始工作(因为您已经将 AutoHideSplashScreen
设置为 false)。
如果您像我一样,想要自动隐藏功能和手动调用隐藏功能,您可以考虑在计时器中触发 .hide()
,这将作为备用计划触发(以防您的其他.hide()
不会触发)。两次调用.hide()
似乎没有负面影响。
//Poor-man's Auto-Hide
Observable.timer(15000).subscribe(()=>
this.splashScreen.hide();
);
【讨论】:
以上是关于平台就绪中的离子闪屏 hide() 方法不起作用的主要内容,如果未能解决你的问题,请参考以下文章