【问题标题】:Phonegap - cannot programmatically close splash screen on iOSPhonegap - 无法以编程方式关闭 iOS 上的启动屏幕
【发布时间】:2014-12-18 07:28:53
【问题描述】:

我有一个关于 iOS 上 Phonegap 的问题:启动屏幕无法以编程方式关闭 - 它只是保持可见。

当我更改启动画面配置以启用自动隐藏时,它会毫无问题地隐藏。

另请注意,在 Android 上它可以正常工作。

这是我的配置:

<preference name="detect-data-types" value="true"/>
<preference name="exit-on-suspend" value="false"/>
<preference name="show-splash-screen-spinner" value="true"/>
<preference name="android-minSdkVersion" value="14"/>
<preference name="android-installLocation" value="auto"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="SplashScreen" value="screen"/>
<preference name="AutoHideSplashScreen" value="false"/>
<preference name="auto-hide-splash-screen" value="false" />
<preference name="SplashScreenDelay" value="100000" />
<preference name="StatusBarOverlaysWebView" value="false" />

 <feature name="SplashScreen">
    <param name="ios-package" value="CDVSplashScreen"/>
    <param name="onload" value="true" />
 </feature>

Javascript(我正在使用 Angular + Ionic 框架)

.$ionicPlatform.ready(function () {

   setTimeout(function(){
      navigator.splashscreen.hide();
   }, 1000);
 })

【问题讨论】:

    标签: ios cordova splash-screen


    【解决方案1】:

    我知道这是一个较老的问题,但以防其他人需要帮助。在 Android 上可能没问题,因为在调用 deviceready 之前加载了所有内容(包括 navigator.splashscreen)。我必须做的是删除 ng-app 属性并在 index 页面上为 deviceready 添加一个事件侦听器,然后在一切可用时启动 angular 应用程序。

    <script type="text/javascript">
      document.addEventListener('deviceready', function onDeviceReady() {
       angular.bootstrap(document, ['myApp']);
      }, false);
     </script>
    

    我在以下位置找到了相关信息:

    how to deviceready in right way in ionic application

    Ionic Framework Forum

    【讨论】:

      【解决方案2】:

      该行是否有错误?如果您没有为您的应用程序使用远程调试器,您可以通过在捕获异常时发出警报来检查它。示例:

      try {
          navigator.splashscreen.hide();
      }
      catch (e) {
          alert(e); // This might be object, though, so maybe not showing the cause
      }
      

      如果出现错误,可能意味着您没有为您的应用程序正确安装 SplashScreen 插件。你可以在这里查看described

      【讨论】:

        【解决方案3】:

        你可以试试关注

        $ionicPlatform.ready(
        function(){
            $cordovaSplashscreen.hide();
        });
        

        注意:你需要调用$cordivaSplashscreen.hide()函数。如果您使用的是 IONIC 框架,您可能想要使用 NG Cordova Plugins

        同样,如果您想使用超时,您可以使用以下代码

        $ionicPlatform.ready(function() {
             var hidesplashscreen = function() {
                        $cordovaSplashscreen.hide();
             };
             $timeout(hidesplashscreen, 2000);
        });
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-22
          • 1970-01-01
          • 2018-08-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-11-24
          相关资源
          最近更新 更多