Что нужно сделать, чтобы не тратить много времени на получение разрешения каждый раз?
Мое приложение запрашивает разрешение от Facebook и Twitter для публикации и чтения. В настоящее время он работает так, что каждый раз, когда приложение перезапускается, оно просто запрашивает разрешение снова.
Процесс занимает много времени. Большинство других приложений не работают таким образом. Как они это делают? Я думал, что у меня уже есть токен, который я могу использовать, и я мог бы сэкономить, когда это произойдет.
Я думал, что процесс быстрый.
Взгляните на этот код, например
[self vSuspendAndHaltThisThreadTillUnsuspendedWhileDoing:^{
[BGHPTools vDoForeGroundAndWait:^{
PO (self.ACAccountType);
PO([self dicReadOptions]);
[self.ACAstore requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
}];
}];
Большинство из вас знакомы с этой частью кода
[self.ACAstore requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
Вот и все. Я прошу Account Framework дать мне разрешение на чтение. Но я не хочу тратить много времени на получение такого разрешения при каждом перезапуске приложения.
Но это требует времени. Я хочу просто использовать свой токен и сделать это быстро.
Но что, если я уже получил разрешение? Не могла бы структура аккаунта понять это и быстрее предоставить мне разрешения?
Скорее всего мне нужно использовать
- (void)renewCredentialsForAccount:(ACAccount *)account completion:(ACAccountStoreCredentialRenewalHandler)completionHandler
Проблема с renewCredentialsForAccount в том, что у некоторых людей может быть несколько аккаунтов в Facebook. Способ узнать, какая учетная запись выбрана или получает объект ACAccount, - через
requestAccessToAccountsWithType:self.ACAccountType options:[self dicReadOptions] completion:^(BOOL granted, NSError *error) {
self.bPermissionToAccessStoreGranted=granted;
[self vContinue];
}];
Чего я хочу избежать.