API 调用完成后的离子隐藏启动画面
ionic hide splashscreen after api call are completed
我想保持初始屏幕显示,直到我的应用程序结束从不同的 API 调用获取多个数据。隐藏初始屏幕的代码基于计时器,我不希望这样:
app.run(function($cordovaSplashscreen) {
setTimeout(function() {
$cordovaSplashscreen.hide()
}, 5000)
})
我目前的犯罪行为是启动画面显示 5 秒,然后在空白页中出现第一个视图,几秒钟后,数据才会在我的视图中可见。
我的问题是:如何在我的应用程序中添加逻辑.js仅在 API 调用完成后隐藏初始屏幕,以便用户将看到包含所有可供使用的数据的第一个视图。
你可以做的是使用内置的 promise 库等待所有请求完成angularjs
$q.all(promises)
。在成功函数中,您可以在控制器中调用$cordovaSplashscreen.hide()
以隐藏启动画面,如已经提到的user46772所示。示例代码:
索引.html
<body ng-controller="AppController"></body>
应用.js
var module = angular.module( "app", [ "ngCordova", "yourServices" ] )
module.config( ... );
module.run( ... );
module.controller( "ApplicationController", ApplicationController );
function ApplicationController( $cordovaSplashscreen, $q, apiCallService ) {
loadData();
function loadData() {
$q.all( apiCallService.loadFoo1, apiCallService.loadFoo2, apiCallService.loadFoo3)
.then( onSuccess, onError );
function onSuccess() {
$cordovaSplashscreen.hide()
}
function onError() {
// do something useful else
}
}
}
您的服务.js
angular
.module( "yourServices", [ "$http" ] )
.factory( "apiCallService", apiCallService );
function apiCallService( "$http" ) {
return {
loadFoo1: loadFoo1,
loadFoo2: loadFoo2,
loadFoo3: loadFoo3
}
function loadFoo1() {
return $http.get( "yourAPI" );
}
...
}
请注意,此代码不是一个工作示例。但它应该解释如何继续解决您的问题。此外,您必须考虑如果其中一个请求在onError()
功能上失败会发生什么。
此外,还应将代码包装到 onDeviceReady
事件中。假设您正在使用ionic
您可以使用这段代码:
$ionicPlatform.ready( loadData );
不要忘记将$ionicPlatform
注入控制器功能。
在运行块上,我没有看到任何函数调用来获取数据。如果您的 API 是基于承诺的,则可以隐藏成功或错误函数的初始屏幕。 但我也不鼓励你从运行块调用它,因为它可能会导致难以检测到的问题。
我建议使用ui-router
并尝试解析功能。此函数在过渡到视图之前加载。
相关文章:
- 我的jQuery插件参数没有正确启动,遇到了问题
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 显示5秒后隐藏潜水
- 视频(自动播放)通过javascript隐藏,但已经在页面加载时启动
- API 调用完成后的离子隐藏启动画面
- jQuery 展开表未作为隐藏启动
- 隐藏地图启动上的单个标记组
- JavaScript - 在启动(加载)时隐藏 Div
- 触摸启动事件未在原来隐藏的按钮上工作
- 为什么我的jQuery隐藏事件没有启动,我的Backbone子视图没有渲染
- 启动折叠切换显示/隐藏在3列没有手风琴
- 启动-选择隐藏事件未触发
- 使用jQuery重新启动已经隐藏和透明的动画
- 覆盖文字不隐藏,启动和关闭覆盖导航不工作
- 是否有一种方法,不让隐藏菜单中的所有元素加载页面启动
- iOS上的Phonegap 3.1手动隐藏启动屏幕
- 隐藏按钮onClick=“"然后启动以下方法调用
- 如何在隐藏元素中启动 Gmap
- 手动隐藏在物理设备上不起作用的启动映像