Quantcast
Channel: Ionic Forum - Latest topics
Viewing all articles
Browse latest Browse all 70612

Cordova plugins load inconsistently on iOS device

$
0
0

@abman wrote:

I'm experiencing a problem that i can't seem to figure out.

Whenever i run my ionic app on a real iOS device it sometimes works perfectly and sometimes freezes (after the splash screen hides). I'm suspecting that a plugin is failing to load causing the app to break.

Here are some details, hopefully there's a problem with my coding:

Cordova CLI: 6.0.0
Ionic Version: 1.2.4-nightly-1917
Ionic CLI Version: 1.7.14
Ionic App Lib Version: 0.7.0
ios-deploy version: 1.8.4
ios-sim version: 5.0.6
OS: Mac OS X El Capitan
Node Version: v5.4.1
Xcode version: Xcode 7.2.1 Build version 7C1002

These are the plugins i'm currently using:

cordova-plugin-console 1.0.2 "Console"
cordova-plugin-device 1.1.0 "Device"
cordova-plugin-inappbrowser 1.3.0 "InAppBrowser"
cordova-plugin-splashscreen 3.2.0 "Splashscreen"
cordova-plugin-statusbar 2.1.1 "StatusBar"
cordova-plugin-whitelist 1.2.0 "Whitelist"
cordova-plugin-x-toast 2.4.0 "Toast"
ionic-plugin-keyboard 1.0.8 "Keyboard"
phonegap-plugin-push 1.5.3 "PushPlugin"

app.js file:

angular.module('starter', ['ionic','ionic.service.core',
'starter.controllers', 'firebase', 'tagged.directives.autogrow', 'ui.calendar', 'ngCordova'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {

if (window.cordova && window.cordova.plugins.Keyboard) {
  cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
  cordova.plugins.Keyboard.disableScroll(true);
}

if (window.StatusBar) {
  // org.apache.cordova.statusbar required
  StatusBar.styleDefault();
}

var push = new Ionic.Push();

push.register(function(token) {
  console.log("Device token:",token.token);
  var tokenRef = new Firebase('https://myfirebaseapp.firebase.com/PushTokens');

  tokenRef.on('value', function(data){
    console.log(data.val());
    var exists = false;

          data.forEach(function(child){
            console.log(child.val());
            if (child.val().token == token.token){
              console.log('found match');
              exists = true;
              return true;
            }
          });

      if (exists === false){
        console.log('nothing found, add token');
        tokenRef.push({ "token": token.token });
      }
  });
});

  });
})

.config(function($stateProvider, $urlRouterProvider, $ionicConfigProvider) {
if (ionic.Platform.isIOS()){
    $ionicConfigProvider.scrolling.jsScrolling(true);
  }
    $ionicConfigProvider.views.swipeBackEnabled(false);

$stateProvider

.state('app', {
url: '/app',
abstract: true,
templateUrl: 'templates/menu.html',
controller: 'AppCtrl'
})

.state('app.contacts', {
url: '/contacts',
views: {
  'menuContent': {
    templateUrl: 'templates/contacts.html',
			controller: 'ContactsCtrl'
  }
}
})

etc etc .......
});

my index.html:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
<title></title>

<link href="lib/fullcalendar/dist/fullcalendar.css" rel="stylesheet">

<!-- compiled css output -->
<link href="css/ionic.app.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">

<!-- ionic/angularjs js -->
<script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/ng-cordova.min.js"></script>
<script src="lib/ionic-platform-web-client/dist/ionic.io.bundle.min.js"></script>

<!--<script src="js/ionic-ion-autoListDivider.js"></script>-->
<!-- cordova script (this will be a 404 during development) -->
<!-- Cordova is bootstrapped by ionic-platform-web-client, uncomment this if you remove ionic-platform-web-client... -->
<!-- <script src="cordova.js"></script> -->

       <!-- your app's js -->
	<!-- Firebase -->
	<script src="js/firebase.js"></script>

	<!-- AngularFire -->
	<script src="js/angularfire.min.js"></script>
	<script src="js/taggedAutogrow.min.js"></script>
	<script src="js/md5.min.js"></script>
        <script src="js/app.js"></script>
        <script src="js/controllers.js"></script>
	<script type="text/javascript" src="lib/jquery/dist/jquery.min.js"></script>
	<script type="text/javascript" src="lib/moment/min/moment.min.js"></script>
	<script type="text/javascript" src="lib/fullcalendar/dist/fullcalendar.min.js"></script>
	<script type="text/javascript" src="lib/fullcalendar/dist/gcal.js"></script>
	<script type="text/javascript" src="lib/angular-ui-calendar/src/calendar.js"></script>
  </head>

 <body ng-app="starter">
 <ion-nav-view></ion-nav-view>
</body>
</html>

This is my log output on a real iOS device when the app Freezes:

2016-02-15 20:13:15.388 My App Name[780:219212] Apache Cordova native platform version 4.0.1 is starting.
2016-02-15 20:13:15.392 My App Name[780:219212] Multi-tasking -> Device: YES, App: YES
2016-02-15 20:13:15.699 My App Name[780:219212] Using UIWebView
2016-02-15 20:13:15.705 My App Name[780:219212] [CDVTimer][handleopenurl] 0.474989ms
2016-02-15 20:13:15.712 My App Name[780:219212] [CDVTimer][intentandnavigationfilter] 6.397963ms
2016-02-15 20:13:15.713 My App Name[780:219212] [CDVTimer][gesturehandler] 0.388026ms
2016-02-15 20:13:15.756 My App Name[780:219212] [CDVTimer][splashscreen] 42.842031ms
2016-02-15 20:13:15.787 My App Name[780:219212] [CDVTimer][statusbar] 30.280054ms
2016-02-15 20:13:15.789 My App Name[780:219212] [CDVTimer][keyboard] 1.281977ms
2016-02-15 20:13:15.790 My App Name[780:219212] [CDVTimer][TotalPluginStartup] 84.995031ms
2016-02-15 20:13:15.807 My App Name[780:219212] active
2016-02-15 20:13:15.809 My App Name[780:219212] PushPlugin skip clear badge
2016-02-15 20:13:16.579 My App Name[780:219212] Resetting plugins due to page load.
2016-02-15 20:13:18.245 My App Name[780:219212] Finished load of: file:///var/mobile/Containers/Bundle/Application/1C64E20A-49FF-456D-BED0-969E234A8A54/My%20App%20Name.app/www/index.html#/app/notes

And here is a log output when the app Works! Please note this is the same build, i just hard closed and launched the app again:

2016-02-15 20:22:38.610 My App Name[785:220502] Apache Cordova native platform version 4.0.1 is starting.
2016-02-15 20:22:38.615 My App Name[785:220502] Multi-tasking -> Device: YES, App: YES
2016-02-15 20:22:38.965 My App Name[785:220502] Using UIWebView
2016-02-15 20:22:38.972 My App Name[785:220502] [CDVTimer][handleopenurl] 0.477016ms
2016-02-15 20:22:38.979 My App Name[785:220502] [CDVTimer][intentandnavigationfilter] 6.392002ms
2016-02-15 20:22:38.980 My App Name[785:220502] [CDVTimer][gesturehandler] 0.386953ms
2016-02-15 20:22:39.020 My App Name[785:220502] [CDVTimer][splashscreen] 39.930999ms
2016-02-15 20:22:39.050 My App Name[785:220502] [CDVTimer][statusbar] 29.722035ms
2016-02-15 20:22:39.052 My App Name[785:220502] [CDVTimer][keyboard] 1.286030ms
2016-02-15 20:22:39.053 My App Name[785:220502] [CDVTimer][TotalPluginStartup] 81.809998ms
2016-02-15 20:22:39.071 My App Name[785:220502] active
2016-02-15 20:22:39.073 My App Name[785:220502] PushPlugin skip clear badge
2016-02-15 20:22:39.848 My App Name[785:220502] Resetting plugins due to page load.
2016-02-15 20:22:43.562 My App Name[785:220502] Finished load of: file:///var/mobile/Containers/Bundle/Application/54A4B53F-F144-4CD3-BC76-A738BC266D93/My%20App%20Name.app/www/index.html#/app/notes
2016-02-15 20:22:43.970 My App Name[785:220502] Ionic Core: plugins are ready
2016-02-15 20:22:43.988 My App Name[785:220502] THREAD WARNING: ['StatusBar'] took '16.850830' ms. Plugin should use a background thread.
2016-02-15 20:22:43.991 My App Name[785:220502] Ionic Push: register
2016-02-15 20:22:44.008 My App Name[785:220566] Push Plugin register called
2016-02-15 20:22:44.009 My App Name[785:220566] PushPlugin.register: setting badge to false
2016-02-15 20:22:44.009 My App Name[785:220566] PushPlugin.register: clear badge is set to 0
2016-02-15 20:22:44.009 My App Name[785:220566] PushPlugin.register: better button setup
2016-02-15 20:22:44.017 My App Name[785:220566] GCM Sender ID (null)
2016-02-15 20:22:44.017 My App Name[785:220566] Using APNS Notification
2016-02-15 20:22:44.058 My App Name[785:220502] Push Plugin register success: <A valid token number removed for forum viewing>
2016-02-15 20:22:44.336 My App Name[785:220502] Device token: A valid token number removed for forum viewing
2016-02-15 20:22:44.550 My App Name[785:220502] Firebase is connected

Thank you.

Posts: 3

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 70612

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>