【问题标题】:meteor js cordova white page showing after splash screen before app load流星 js 科尔多瓦白页显示在应用程序加载之前的初始屏幕之后
【发布时间】:2016-11-12 21:55:47
【问题描述】:

应用程序将在加载前启动屏幕后显示白页。我尝试删除mobile-experience 包,添加fastclickmobile-status-bar 包,我添加了cordova-plugin-splashscreen 插件,并设置首选项如下:

App.setPreference('SplashScreen', 'CDVSplashScreen');
App.setPreference('AutoHideSplashScreen', false);
App.setPreference('SplashScreenDelay', '30000');

我在启动事件回调中隐藏了启动画面:

Meteor.startup(() => {
    if (Meteor.isCordova) {
        navigator.splashscreen.hide();
    }
});

但是这两个都不起作用,白页在应用程序加载之前的启动屏幕之后仍然显示。 有人有什么建议吗?提前致谢

【问题讨论】:

    标签: ios cordova meteor


    【解决方案1】:

    编辑

    请注意,当 DOM 准备好时,Meteor.startup 会在客户端(在您的情况下为移动应用)上执行给定的回调。

    在客户端上,该函数将在 DOM 准备好后立即运行。

    但是在 DOM 就绪和 DOM 加载/完全渲染之间可能会有一小段时间。这可能是您出现白屏的地方。

    您可以在 Internet 和 SO 上进行搜索,以了解这两个事件系列之间的区别:


    原答案:

    好吧,与其在 Meteor 启动时隐藏启动屏幕,您可能更愿意对您的情况感兴趣,将其保持更长时间以覆盖那个白屏幕……

    如果您可以重新添加 launch-screen 包,您可以简单地使用:

    // in a client-only javascript file
    var handle = LaunchScreen.hold();
    
    Template.myUI.onRendered(function () {
      handle.release();
    });
    

    参考:https://atmospherejs.com/meteor/launch-screen

    请注意,默认情况下,launch-screen 包会保留您的初始屏幕,直到主体完全呈现。

    【讨论】:

    • 我删除了mobile-experience并重新添加了fastclickmobile-status-barlaunch-screen,它也不起作用。
    • 正如我在上面的回答中所说,这不仅仅是包的问题。如果您在流星启动时手动隐藏启动画面,您可能没有给应用程序足够的时间来渲染其主体和加载其内容。你应该移除你的隐藏,并且可能保持启动屏幕比默认时间更长。
    • Meteor.startup 触发时可能存在误解。我会更新答案以提供更多详细信息。
    猜你喜欢
    • 2016-08-25
    • 2021-07-28
    • 1970-01-01
    • 2020-11-17
    • 1970-01-01
    • 2021-05-01
    • 2015-01-09
    • 2018-08-21
    • 2015-12-08
    相关资源
    最近更新 更多