Ionic启动屏幕没有渐隐效果就隐藏了。

11

我正在处理我的第一个Ionic项目。

对于启动画面,我没有任何问题 - 我能够使用CordovaSplashscreen插件,并在相关的promise解决后告诉它隐藏(hide());我还能够注释掉该隐藏并依赖于config.xml中的AutoHideSplashScreen为true,让启动画面在SplashScreenDelay之后自动隐藏。

(我列出这些有效的事情,以便清楚我的问题不是Ionic和Cordova / PhoneGap相关启动画面问题的重复。)

我的问题是,无论我尝试什么 - ios,android,模拟器,真实设备,使用CordovaSplashscreen去隐藏(hide())或不隐藏,设置AutoHideSplashScreen为true或false等等 - 我都无法让启动画面消失时淡出

似乎无论我使用哪种组合的config.xml设置,隐藏启动画面或不隐藏,模拟器或设备,ios或android,FadeSplashScreen都没有任何效果。

这是我当前的config.xml设置,虽然这并不能完全描绘我尝试过的十几种这些值的各种变化:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<widget id="com.ionicframework.yourkids381244" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
... other code at same level of hierarchy omitted ... 
  <preference name="SplashScreen" value="screen"/>
  <preference name="AutoHideSplashScreen" value="false"/>
  <preference name="auto-hide-splash-screen" value="false"/>
  <preference name="ShowSplashScreenSpinner" value="false"/>
  <preference name="SplashScreenDelay" value="10000"/>
  <preference name="FadeSplashScreen" value="true"/>
  <preference name="FadeSplashScreenDuration" value="3.0"/>
... other code at same level of hierarchy omitted ... 
</widget>

这是我的app.js路由代码,它执行了hide()操作,但似乎并不是问题的一部分。我通过注释掉hide()行并将AutoHideSplashScreen设置为false来确认它可以正常工作,这成功地导致闪屏从未隐藏。但是,从那个状态开始,无论我是通过取消注释hide()行以使用CordovaSplashscreen还是设置AutoHideSplashScreen为true来隐藏,都无法使闪屏淡出。

  .state('app.main', {
    url: "/main",
    views: {
      'menuContent': {
        templateUrl: "templates/main.html",
        controller: ['$scope', '$timeout', '$ionicGesture',
        function($scope, $timeout, $ionicGesture) {
          $scope.$on('$ionicView.loaded', function() {
            ionic.Platform.ready( function() {
              $timeout(function() {
                if(navigator && navigator.splashscreen) {
                  // note that this works fine, except for the fading
                  navigator.splashscreen.hide();    
                }
              }, 500);
            });
          });
        }],
      }
    }
  })
< p > < em > (预料到会有评论说这不涉及承诺的解决,那已在其他地方完成,然后呈现app.main...关键是,这种隐藏方式确实可行,只是没有渐变效果)

还有其他尝试的想法吗?


你使用的插件版本是哪个?我看到他们已经发布了2.0版本,对iOS淡入淡出做了一些改动。 - e666
我正在使用2.0.0版本,这是最新版本(发布于2015年4月15日)。谢谢您促使我再次核对。我之前还在使用Ionic CLI 1.4.5版本,现在升级到1.5.0版本了... - Ben Wheeler
1
这里遇到了相同的问题。Ionic CLI 1.5.0。我也尝试了这里的教程:https://calendee.com/2015/03/03/polish-app-launch-with-cordova-splashscreen-plugin/,但仍然没有解决。请 Ionic 团队修复它。 - Android Noob
2个回答

1

1
尝试删除config.xml文件中所有包含启动画面的配置项。以下是我的完整config.xml配置项列表:
<preference name="webviewbounce" value="false"/>
<preference name="UIWebViewBounce" value="false"/>
<preference name="DisallowOverscroll" value="true"/>
<preference name="BackupWebStorage" value="none"/>

删除这些启动画面的行应该会导致重置默认设置。因此,启动画面应该会消失。

删除 FadeSplashScreen 值为 true 的行? - Ben Wheeler
从config.xml中删除所有的启动画面值似乎不起作用。即使只保留FadeSplashScreen设置为true的所有内容也是如此。我确认我的代码中没有直接处理启动画面的内容。我还确认了测试期间运行的是当前版本的代码,通过对起始页面进行表面更改并确认在iOS设备上测试时也进行了更改。 - Ben Wheeler

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接