2012-07-12 134 views
3

我知道如何詢問使用Twitter訪問:我如何分辨沒有Twitter訪問的應用程序和Twitter沒有帳戶設置的區別?

requestAccessToAccountsWithType:withCompletionHandler

但是,這會彈出一個對話,如果應用程序沒有被授權。如果應用程序已獲得授權,我該如何靜靜地檢查以查看

我可以使用查詢賬戶數量:

NSArray *twitterAccounts = [store accountsWithAccountType:twitterAccountType]; 

但我會得到一個空數組回來,如果我的應用程序沒有被授權,如果沒有可用的帳戶。我看不出找出這些是哪種情況的方法。

爲了澄清,我需要跟以下情況的區別是:

  1. 用戶未授權使用Twitter的應用程序的權限。
  2. 用戶已授予權限但尚未設置任何Twitter帳戶。

還有TWTweetComposeViewController canSendTweet如果應用程序被授權並且至少有一個帳戶設置,它將返回true。然而,如果它返回false,這又不能讓我區分這兩種情況之間的區別。

+0

我不明白爲什麼要這樣做?無論哪種方式,您無法訪問用戶的Twitter帳戶...因此'canSendTweet' – soemarko 2012-07-12 20:39:43

+0

@soemarko ridwan在橫向視圖中,我有'與Twitter共享'按鈕。該按鈕有第二個標籤。我想通過這個標籤告訴用戶關於Twitter的狀態。我希望能夠說'沒有可用的Twitter帳戶'或'未經授權'。我知道在未經他們許可的情況下我無法訪問用戶的帳戶。我從來沒有說過這就是我想要的。 – Undistraction 2012-07-12 21:44:09

+0

看來,第二種情況「用戶已授予權限但尚未設置任何Twitter帳戶」不會發生。至少在iOS 6上,如果用戶沒有配置Twitter帳戶,那麼iOS拒絕訪問,即在requestAccessToAccountsWithType:withCompletionHandler:完成塊中,授予總是設置爲NO。 – 2012-10-30 12:42:04

回答

7

它看起來像有,你可以檢查,看看是否你已經授權使用它每個賬戶類型的accessGranted屬性:http://developer.apple.com/library/ios/#DOCUMENTATION/Accounts/Reference/ACAccountTypeClassRef/Reference/Reference.html#//apple_ref/doc/uid/TP40011022

所以我檢查,看看是否你已經先授權,如果是這樣,然後拉嘰嘰喳喳帳戶的列表,看看是否有任何數組中。

+0

啊。有些地方我沒有看。非常感謝。 – Undistraction 2012-07-14 17:43:12

+0

另外值得注意的是,似乎ACAccountType :: accessGranted在模擬器中總是返回false;即使設置了Twitter帳戶,該屬性也會在ACAccount類型的ACAccountTypeIdentifierTwitter上始終呈現false。 – Undistraction 2012-07-16 17:16:07

+0

Fwiw這是一個非常錯誤的API。即使應用程序被授權,它也會返回false,即使它會很高興地讓您訪問Twitter。 – Undistraction 2012-07-31 20:37:48

相關問題