【问题标题】:Ionic splash screen hides without fading离子闪屏隐藏不褪色
【发布时间】:2015-08-11 12:07:15
【问题描述】:

从事我的第一个 Ionic 项目。

我对启动画面没有任何问题——我可以使用 CordovaSplashscreen 插件并在相关承诺解决时告诉它 hide();我还可以注释掉隐藏,而是依赖 AutoHideSplashScreen 在 config.xml 中为真,并让启动画面在 SplashScreenDelay 之后自动隐藏。

(我列出了这些确实有效的事情,因此很明显我的问题与数十个 Ionic 和 Cordova/PhoneGap 相关的闪屏问题并不重复。)

我的问题是,无论我尝试什么——ios、android、模拟器、真实设备、是否使用 CordovaSplashscreen 隐藏()、AutoHideSplashScreen 设置为 true、AutoHideSplashScreen 设置为 false 等等。——我不能让初始屏幕在消失时淡出

无论我使用什么 config.xml 设置、启动屏幕 hide() 调用或不调用、仿真或设备、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()'ing,不过,这似乎不是问题的一部分;它有效,我通过注释掉 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);
            });
          });
        }],
      }
    }
  })

(期待对此的评论不涉及承诺的解决,这是在其他地方完成的,然后 app.main 被呈现......关键是,隐藏这种方式确实有效,它只是不强>淡出)

有更多尝试的想法吗?

【问题讨论】:

  • 你有哪个版本的插件?我已经看到是 2.0 版,他们对 iOS 褪色进行了一些更改。
  • 我使用的是 2.0.0,是今天最新的(2015 年 4 月 15 日发布)。感谢您提示我仔细检查。我也在使用 Ionic CLI 1.4.5,现在升级到 1.5.0...
  • 这里遇到了同样的问题。离子 CLI 1.5.0。我还尝试了这里的教程:calendee.com/2015/03/03/…,但它仍然没有用。请 Ionic 团队修复它。

标签: cordova ionic-framework ionic splash-screen cordova-plugins


【解决方案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值真线?
  • 从 config.xml 中删除所有启动画面值似乎不起作用。除了 FadeSplashScreen 设置为 true 之外,也不会删除所有这些。我确认我的代码中没有任何内容直接处理启动画面。我还确认了当前版本的代码是在测试期间运行的,通过对起始页面进行表面更改并确认它们也是在 ios 设备上进行测试时进行的。
【解决方案2】:

这似乎是 Splashscreen Cordova 插件的一个错误,它似乎已得到解决:https://issues.apache.org/jira/browse/CB-8875

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    相关资源
    最近更新 更多