我的应用程序请求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];
}];
那就是它。我要求帐户框架授予我阅读权限。但是每次应用程序重新启动时,我都不想花很长时间来请求该权限。
但这需要时间。我想只使用我的令牌并加快速度。
但是如果我已经获得许可呢?无法通过帐户框架解决问题并更快地授予我权限吗?
我很可能需要使用
- (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];
}];
这是我想要避免的。