【问题标题】:phonegap 3.1 - Unable to hide splash screen on device readyphonegap 3.1 - 无法在设备就绪时隐藏启动画面
【发布时间】:2016-08-25 16:52:56
【问题描述】:

使用 phonegap 3.1 我试图在设备准备就绪时隐藏启动屏幕:

document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
 navigator.splashscreen.hide();
}

但它返回:

无法调用未定义的“隐藏”方法

导航器对象不包括启动画面属性。

我在 phonegap 2.9 上试过了,效果很好。

【问题讨论】:

    标签: android cordova


    【解决方案1】:

    经过研究和实验,我们必须这样做才能让它发挥作用:

    cordova plugin add org.apache.cordova.splashscreen

    cordova build

    然后,cordova build 将错误的行添加到 config.xml - 所以我们必须将其更改为以下内容:

     <feature name="SplashScreen">
            <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
     </feature>
    

    在你的主要活动中

     super.setIntegerProperty("splashscreen", R.drawable.splash);
     super.setIntegerProperty("splashScreenDelay", 10000); //time to display the splash
    

    我们终于可以在javascript中使用hide方法了。

    【讨论】:

    • 在 3.4 中,我需要将 添加到配置中。为什么 CLI 不这样做????
    • 你会如何为 iOS 做这个?
    • @Petar Vasilev(在命名应用程序目录的 config.xml 中:&lt;feature name="SplashScreen"&gt; &lt;param name="ios-package" value="CDVSplashScreen" /&gt; &lt;/feature&gt;
    【解决方案2】:

    您是否使用 CLI 添加SplashScreen plugin?您必须使用 $ cordova plugin add org.apache.cordova.splashscreen 添加插件(将插件代码从 plugins.cordova.io 复制到 /yourApp/plugins/org.apache.cordova.splashscreen/ 然后稍后 cordova build 将插件代码复制到适当的平台位置。

    【讨论】:

      【解决方案3】:

      如果你使用 phonegap 构建,而不是这样做

      cordova plugin add ...
      

      从命令行,您需要将插件和功能添加到config.xml

      <gap:plugin name="org.apache.cordova.splashscreen" />
      <feature name="SplashScreen">
          <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" />
          <param name="ios-package" value="CDVSplashScreen" />
      </feature>
      

      【讨论】:

        【解决方案4】:

        我能猜到的唯一一件事是仔细检查您的 HTML 头部是否有 &lt;script type="text/javascript" charset="utf-8" src="cordova.js"&gt;&lt;/script&gt; 调用该 JS。抱歉,3.1 还没搞定。

        【讨论】:

        • 我想说唯一要做的就是提交错误报告。
        【解决方案5】:

        添加这个:

        <preference name="SplashScreen" value="splash.png" />
        <preference name="SplashScreenDelay" value="3000" />
        

        navigator.splashscreen.hide() 对我也不起作用。

        更新: navigator.splashscreen.hide() 仅在在线构建(phonegap 构建)时有效。

        【讨论】:

        • 如果只有在使用 PGB 构建时才有效,这意味着您缺少插件。使用cordova plugin add org.apache.cordova.splashscreen 安装启动画面插件,它应该可以在您的 Cordova CLI 上正常工作。
        【解决方案6】:

        升级到 Phonegap Desktop 0.3.6 后,我遇到了类似的问题,我的一个旧应用程序卡在了初始屏幕上。在配置窗口中,它显示了正确的应用程序名称和版本,并且在我修改 config.xml 时它正在更新。在控制台中我只有一个错误:500 for http://localhost:3000/cordova_plugins.js

        一个新应用运行良好。

        以上方法我都试过了:

        • 闪屏插件和配置
        • cordova.jscordova_plugins.js 添加到index.html。这不再是必要的了,因为很多版本以前 - 构建会为您完成。
        • platforms/android/assets/www 文件夹中存在cordova.jscordova_plugins.js文件
        • config.xml 中指定了&lt;content src="index.html" /&gt;

        最终解决我的问题是完全删除platforms 文件夹并再次运行cordova platform add android。我想在每次 Phonegap 升级后这样做是安全的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-06
          • 1970-01-01
          • 2011-12-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-04
          • 2018-08-29
          相关资源
          最近更新 更多