[
https://issues.apache.org/jira/browse/CB-10530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15151241#comment-15151241
]
Torsten Freyhall commented on CB-10530:
---------------------------------------
Yes, this does indeed solve the freeze in my test project.
However I was not sure about why the timer resolves due to long script
execution times though. It seems like the intention is that whenever
gap://ready is loaded in the iframe, the immediate response from the native
side should be to call nativeFetchMessages() which should clear the timeout.
Therefore I dug a little deeper in the native side, and found that the
evaluateJavaScript:completionHandler: in CDVCommandQueue expects implementation
to to be async (a comment in the code says so), but the CDVUIWebViewEngine
method actually is implemented synchronous.
I wrapped the entire method in a dispatch_async call (maybe a very naive
solution, it might mess with references?):
dispatch_async(dispatch_get_main_queue(), ^{
NSString* ret = [(UIWebView*)_engineWebView
stringByEvaluatingJavaScriptFromString:javaScriptString];
if (completionHandler) {
completionHandler(ret, nil);
}
});
This also solves the original issue on cordova-ios 4.0.1 as the timeout never
resolves, so maybe asyncing this method should also be a part of the proper fix?
> App freezes sometimes directly after starting on iOS
> ----------------------------------------------------
>
> Key: CB-10530
> URL: https://issues.apache.org/jira/browse/CB-10530
> Project: Apache Cordova
> Issue Type: Bug
> Components: iOS
> Affects Versions: 6.0.0
> Environment: OSX El Capitan 10.11.3, XCODE (7.2.1), iOS 9.2.1,
> cordova 6.0.0, ionic 1.7.14
> Reporter: Florian Krüger
> Assignee: Shazron Abdullah
> Priority: Critical
> Labels: cordova-ios-4.1.0, triaged
> Attachments: Instruments.trace.zip
>
>
> * Installed the "ionic start myApp sidemenu" example application
> * Start XCODE (7.2.1)
> * Start the app by clicking the run button from xCODE
> * The app probably starts as expected.
> * Repeat the start process until the app freezes.
> The app sometimes freezes completely. If this happens you cannot do anything
> with the app (you need to push the home button and close the app via task
> manager). I had the same issue for another more complex app.
> The CPU stays at around 99% workload.
> I made a snapshot of the profiler (Instruments)
>
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]