Shalva Usubov created CB-13218:
----------------------------------

             Summary: ionic on iOS 11 freeze UI while fetching contacts. 
                 Key: CB-13218
                 URL: https://issues.apache.org/jira/browse/CB-13218
             Project: Apache Cordova
          Issue Type: Bug
          Components: cordova-ios, cordova-plugin-contacts
    Affects Versions: [email protected]
         Environment:  Cordova version: 7.0.1, cordova-plugin-contacts 2.3.1, 
ionic 3.9.2, "cordova-ios": "^4.4.0"
            Reporter: Shalva Usubov
            Assignee: Shazron Abdullah


Ionic on iOS 11 freeze UI while fetching contacts.

The method "navigator.contacts.find" should be asynchronously, but on iOS 11 it 
blocks UI until all contacts will be fetched.

Additionally, in XCode 9 console, I can see the new output about "Increasing 
interest" and "Fetching in bulk 250 contacts":

{code:java}
2017-08-16 12:54:12.784355+0300 Myapp[502:71606] Ionic Native: deviceready 
event fired after 2281 ms
2017-08-16 12:54:15.578481+0300 Myapp[502:71683] Resetting interest
2017-08-16 12:54:15.578545+0300 Myapp[502:71683] Increasing interest: 1
2017-08-16 12:54:15.581007+0300 Myapp[502:71683] Increasing interest: 2
2017-08-16 12:54:15.582130+0300 Myapp[502:71683] Increasing interest: 3
2017-08-16 12:54:15.583154+0300 Myapp[502:71683] Increasing interest: 4
2017-08-16 12:54:15.584084+0300 Myapp[502:71683] Increasing interest: 5
2017-08-16 12:54:15.585352+0300 Myapp[502:71683] Fetching in bulk 250 contacts!
2017-08-16 12:54:15.919986+0300 Myapp[502:71683] Fetching in bulk 250 contacts!
2017-08-16 12:54:16.226411+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:16.559840+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:16.867234+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:17.215888+0300 Myapp[502:71658] Fetching in bulk 250 contacts!
2017-08-16 12:54:17.548900+0300 Myapp[502:71658] Fetching in bulk 250 contacts!
2017-08-16 12:54:17.883738+0300 Myapp[502:71658] Fetching in bulk 250 contacts!
2017-08-16 12:54:18.209814+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:18.588213+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:18.942062+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:19.295545+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:19.702245+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:20.092949+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:20.449420+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:20.837158+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:21.220039+0300 Myapp[502:71657] Fetching in bulk 250 contacts!
2017-08-16 12:54:21.593841+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:21.932923+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:22.327521+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:22.869730+0300 Myapp[502:71738] Resetting interest
2017-08-16 12:54:22.869790+0300 Myapp[502:71738] Increasing interest: 1
2017-08-16 12:54:22.871022+0300 Myapp[502:71738] Increasing interest: 2
2017-08-16 12:54:22.872016+0300 Myapp[502:71738] Increasing interest: 3
2017-08-16 12:54:22.873033+0300 Myapp[502:71738] Increasing interest: 4
2017-08-16 12:54:22.873850+0300 Myapp[502:71738] Increasing interest: 5
2017-08-16 12:54:22.878584+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:23.222158+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:23.557272+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:23.872468+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:24.178993+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:24.503080+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:24.902068+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:25.263960+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:25.410705+0300 Myapp[502:71679] void 
SendDelegateMessage(NSInvocation *): delegate 
(webView:identifierForInitialRequest:fromDataSource:) failed to return after 
waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode
2017-08-16 12:54:25.644994+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:26.047446+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:26.418006+0300 Myapp[502:71670] Fetching in bulk 250 contacts!
2017-08-16 12:54:26.773450+0300 Myapp[502:71738] Fetching in bulk 250 contacts!
2017-08-16 12:54:27.204144+0300 Myapp[502:71738] Fetching in bulk 164 contacts!
2017-08-16 12:54:27.979844+0300 Myapp[502:71606] Fetch contacts: 12627ms
{code}

During 12627ms UI if freezed.

I found that root case of "Fetching in bulk" this line 
https://github.com/apache/cordova-plugin-contacts/blob/master/src/ios/CDVContact.m#L1081



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to