我有一个Ionic应用程序,可以在Android和iOS模拟器上完美运行,但不适用于实际的iOS设备(我使用离子包来构建它)。当我运行应用程序时,会发生以下情况:
我第一次运行它:就绪事件是而不是被触发,但是我的家庭控制器显示并且正常运行。
所以我关闭应用程序并重新打开它。
我第二次运行它:准备好的事件被解雇,我初始化各种事情,包括推送和广告。但是,我不会被问到是否希望我的手机接收通知,而且我看不到任何广告。
所以我再次关闭应用程序。此时(应用程序刚刚关闭时)我询问了通知,所以我同意然后重新打开该应用。
我第三次运行它:再次触发就绪事件,所有内容再次初始化并显示广告。
我已经尝试了很多东西,包括在index.html中重新排序脚本,手动引导以及大量的try / catchs来找出 - 如果有的话 - 失败了。我很难过并且很欣赏这些想法。
的index.html
<head>
<link href="lib/ionic/css/ionic.min.css" rel="stylesheet">
<link href="css/styles.min.css" rel="stylesheet">
<script src="lib/ionic/js/ionic.bundle.min.js"></script>
<script src="cordova.js"></script>
<script src="js/app.js"></script>
<script src="js/controllers.js"></script>
<script src="js/directives.js"></script>
<script src="js/services.js"></script>
</head>
<body ng-app="fwp">
etc
app.js(注意:始终调用对Statics.getAllCompetitions的调用并且总是成功)
angular.module("fwp", ["ionic", "fwp.controllers", "fwp.directives", "fwp.services"])
.run(function ($http, $ionicPlatform, $ionicPopup, $state, Statics) {
$ionicPlatform.ready(function () {
//hide the accessory bar by default
if ((window.cordova)&&(window.cordova.plugins)&&(window.cordova.plugins.Keyboard)) {
//hide keyboard accessory bar
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
//status bar found
if (window.StatusBar) {
//style status bar
StatusBar.styleLightContent();
}
//initialise everything
});
})
.config(function ($ionicConfigProvider, $stateProvider, $urlRouterProvider) {
//remove back label
$ionicConfigProvider.backButton.previousTitleText(false).text("");
// Ionic uses AngularUI Router which uses the concept of states
// Learn more here: https://github.com/angular-ui/ui-router
// Set up the various states which the app can be in.
// Each state's controller can be found in controllers.js
$stateProvider
// setup an abstract state for the tabs directive
.state("tab", {
url: "/tab",
abstract: true,
templateUrl: "templates/tabs.html"
})
.state("tab.home", {
cache: false,
url: "/home",
views: {
"tab-home": {
templateUrl: "templates/mainMenu.html",
resolve: {
allCompetitions: function (Statics) {
return Statics.getAllCompetitions();
}
},
controller: "HomeCtrl"
}
}
})
etc