iOS app unresponsive/hangs when loading webviews (intermittent)


#1

I have a steroids app that uses 6-7 preloaded webviews. I have noticed an intermittent issue where it will be unresponsive for 20-30 seconds when these webviews are unloaded and then loaded.

The issue appears to occur with AdHoc builds on the 4.0.5 and 4.0.4 versions of the framework. I haven’t noticed it with 4.0.3.

It appears more likely to happen after the iPad has been powered off. So the iPad is off for some period of time, turned on and the app is told to unload/reload the webviews.

Summary of what I have observed:

  • doesn’t happen in the scanner
  • appears in 4.0.4 and 4.0.5 ad hoc builds
  • doesn’t appear in 4.0.3 ad hoc builds
  • occurs on iOS 8.4.1 and 9.0b3; iPad Air and Air2, iPad 4th gen
  • the iPad responds to the home button when the app is unresponsive
  • it can also occur when the app is first started and is still loading the preloaded webviews
  • the unresponsiveness will mean taps are ignored and if the on screen keyboard is visible then the keyboard is unresponsive

I’ve attached an example console log where this issue occurs. Around 14:51:00 the app is unresponsive.

So some questions:

  • does anyone know how to narrow down the issue or a fix?

  • what changed between 4.0.3 and 4.0.4/.5 to cause this issue?

  • is there anything suspicious in the log below?

  • From the log what about the entries:

  • “could not take process assertions”

  • “deviceready has not fired after 5 seconds”

  • “Channel not fired”

I have noticed that some of these entries appear in the console even when the unresponsive issue does not occur.

Aug 31 14:50:43 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/preferences/inventory-settings/inventory-settings.html
Aug 31 14:50:44 My-iPad SpringBoard[53] <Warning>: [<_UIKeyboardArbiterHandle: 0x1363e9060; PID 2336: com.apple.accessibility.AccessibilityUIServer <(null)>; hosting PIDs {(
	)}; level 0.000000; active NO [wants NO]; suppression 0>] could not take process assertion
Aug 31 14:50:44 My-iPad SpringBoard[53] <Warning>: [<_UIKeyboardArbiterHandle: 0x1363e9060; PID 2336: com.apple.accessibility.AccessibilityUIServer <(null)>; hosting PIDs {(
	)}; level 0.000000; active NO [wants NO]; suppression 0>] could not take process assertion
Aug 31 14:50:45 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/preferences/inventory-settings/inventory-settings.html
Aug 31 14:50:45 My-iPad My_App[2425] <Warning>: Gave lock 38
Aug 31 14:50:45 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/preferences/inventory-settings/inventory-settings.html
Aug 31 14:50:45 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:45 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/consumables/consumables-list/consumables.html
Aug 31 14:50:46 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/consumables/consumables-list/consumables.html
Aug 31 14:50:46 My-iPad My_App[2425] <Warning>: Gave lock 39
Aug 31 14:50:46 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/consumables/consumables-list/consumables.html
Aug 31 14:50:46 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:46 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/order/order-list/order.html
Aug 31 14:50:46 My-iPad SpringBoard[53] <Warning>: [<_UIKeyboardArbiterHandle: 0x1363e9060; PID 2336: com.apple.accessibility.AccessibilityUIServer <(null)>; hosting PIDs {(
	)}; level 0.000000; active NO [wants NO]; suppression 0>] could not take process assertion
Aug 31 14:50:47 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/order/order-list/order.html
Aug 31 14:50:47 My-iPad My_App[2425] <Warning>: Gave lock 40
Aug 31 14:50:47 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/order/order-list/order.html
Aug 31 14:50:47 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:47 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/watch-list/watch-list.html
Aug 31 14:50:48 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/watch-list/watch-list.html
Aug 31 14:50:48 My-iPad My_App[2425] <Warning>: Gave lock 41
Aug 31 14:50:48 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/watch-list/watch-list.html
Aug 31 14:50:48 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:48 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/item/item-list/items.html
Aug 31 14:50:49 My-iPad My_App[2425] <Warning>: Finished load of: (null)
Aug 31 14:50:49 My-iPad My_App[2425] <Warning>: Gave lock 42
Aug 31 14:50:49 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: (null)
Aug 31 14:50:49 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:49 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/shopping-cart/shopping-cart.html
Aug 31 14:50:50 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/shopping-cart/shopping-cart.html
Aug 31 14:50:50 My-iPad My_App[2425] <Warning>: Gave lock 43
Aug 31 14:50:50 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/shopping-cart/shopping-cart.html
Aug 31 14:50:50 My-iPad My_App[2425] <Warning>: Resetting plugins due to page load.
Aug 31 14:50:50 My-iPad My_App[2425] <Warning>: webViewDidStartLoad -> reset plugins -> URL: http://localhost/home/home.html
Aug 31 14:51:12 My-iPad My_App[2425] <Warning>: Finished load of: http://localhost/home/home.html
Aug 31 14:51:12 My-iPad My_App[2425] <Warning>: webViewDidFinishLoad -> reset plugins -> URL: http://localhost/home/home.html
Aug 31 14:51:13 My-iPad My_App[2425] <Warning>: deviceready has not fired after 5 seconds.
Aug 31 14:51:13 My-iPad My_App[2425] <Warning>: Channel not fired: onDOMContentLoaded
Aug 31 14:51:13 My-iPad My_App[2425] <Warning>: Channel not fired: onCordovaConnectionReady
Aug 31 14:51:13 My-iPad My_App[2425] <Warning>: Channel not fired: onCordovaInfoReady
Aug 31 14:51:13 My-iPad My_App[2425] <Warning>: Channel not fired: onFileSystemPathsReady

#2

Hi, did you solve this issue? I’m having a similar issue