怎么做才能避免每次都花很长时间寻求许可?

时间:2014-04-15 10:48:01

标签: facebook acaccountstore

我的应用程序请求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];
        }];

这是我想要避免的。

0 个答案:

没有答案