2012-09-27 15 views
11

Kullanıcıların Ayarlar -> Twitter'da ekledikleri Twitter hesabına erişmek için TWTweetComposeViewController kullanıyorum. Uygulamanın bir twitter hesabına erişmeye çalıştığında, buna benzer bir mesaj ile uyarı présente olmalıdır:"[App]" Twitter'a Erişmek İstiyorsunuz Hesaplar uyarısı iOS 6'da gösterilmiyor

"[AppName] Would Like Access to Twitter Accounts" 

"OK" "izin vermeyin" veya dokunabilirsiniz için hangi. "Tamam" a dokunulduğunda twitter'e erişim sağladığından, bunun işletim sisteminin kendisi tarafından görüntülenen bir uyarı olduğunu varsayalım.

Yukarıdaki uyarı, iOS 5.x aygıtında test ettiğimde görüntülenir, ancak iOS 6 aygıtında test ettiğimde durum böyle değildir.

açıklandığı gibi
[TWTweetComposeViewController canSendTweet] 

, bu olmaz: Ben uyarısı şu mesajı gönderdiğinizde sunulacak ve henüz ayarlarında Twitter benim uygulamaya erişim elde edemediğini bekliyoruz. IOS 6'da bilinen bir hata olup olmadığını bilen var mı? SO üzerinde herhangi bir yazı bulamadık ve farklı bir davranışa sahip olmadığım için bir hata olduğuna inanıyorum.

Bilginize, ben şu iki cihazlarda bu test ediyorum:

  • iPhone 4 iOS 5.1 ile
  • iPhone 4 iOS 6,0

Güncelleme

kullandığım ile IOS 5'i aşağıdaki şekilde denetleyen DETweetComposeViewController:

+ (BOOL)de_isIOS5 
{ 
    return (NSClassFromString(@"NSJSONSerialization") != nil); 
} 

Ancak NSJSONSerialization sınıfı iOS 6'da da gösterildiğinden, bunun nedeni bu olmamalıdır.

cevap

30

Aynı şeyi iOS 5.1 ve iOS 6.0'da tüm gün sıralamada sıralıyorum.

Ayarlar'da yapılandırılmış bir Twitter hesabı olduğu sürece, uygulamam artık yalnızca TWTweetComposeViewController görüntülemek için iOS 6.0'da Twitter erişim iznini istemiyor. Uygulamam için Settings > Privacy > Twitter numaralı telefondan elle giriş yaparak manuel olarak doğruladım. erişime kapalı, ben düzgün TWRequest kullanarak bir dostluk oluşturma yeteneği inkar ediyorum, ama yine de TWTweetComposeViewController açılır yapabilirsiniz. Erişim izni verene kadar iOS 5.1'de her seferinde bir mesaj alıyorum.

Bu bana mantıklı geliyor. TWTweetComposeViewController Bütün yaptığı tweet başlatmak, bu yüzden kullanıcı önceden yapılandırılmış bir cihaz genelinde Twitter hesabı varsa, o yerden tweetleri göndermek için yeterli izni olmalıdır. Uygulama başına bir temelde erişim izni vermek gerçekten gereksiz bir adımdır. kullanışlı düğmeler "İptal" "Ayarlar" ve

No Twitter Accounts 
There are no Twitter accounts 
configured. You can add or create 
a Twitter account in Settings. 

:

hiçbir Twitter hesapları henüz yapılandırılmışsa

, TWTweetComposeViewController tho bu iletiyle ister.

Buna Bir sidenote: iOS 6 da sadece "[AppName] Would Like Access to Twitter Accounts" mesajla bir uygulama istekleri erişim ilk kez sorar. Bundan sonra

geri istemi ask olsun Settings > General > Reset > Reset Location & Privacy sıfırlamak gerekir.Bir uygulamayı silip yeniden yükleseniz bile, "zaten bir kez sorulan" ayarı devam eder. Erişimi Settings > Privacy içinde el ile etkinleştirebilirsiniz, ancak bu sıfırlama, yeniden görüntüleme isteğini almanın tek yoludur (testiniz için önemliyse).

Bulduğum iki şey daha var. [ACAccountStore requestAccessToAccountsWithType:options:completion:] tamamlanması bloğu, granted == NO eğer In:

  1. [error code] == 6 ederse, kullanıcı tanımlı hiçbir hesapları vardır.
  2. error == nil ise, kullanıcınız uygulamanız için erişimi hemen şimdi veya daha önce reddediyor. Daha önce olsaydı, ekranda hiçbir uyarı görüntülenmeden istek sessizce göz ardı edilir, "İzin Verme" düğmesine dokunun.
+0

Cevabınız için çok teşekkür ederim. Geçenlerde, TWTweetComposeViewController'ın iOS 6'dan itibaren kullanımdan kaldırıldığını ve bunun yerine Apple'ın SLComposeViewController'ı kullanmamızı istediğini keşfettim. SLComposeVC ile aynı durumda olup olmadığını test edip sonuçları yayınlayacağım. –

+0

Simülatörde iOS6 ile test yapıyorum ve "[AppName] Twitter Hesaplarına Erişmeyi İsteyebilir" mesajını hiç görmedim. - sadece izin istemeden gönderir. Çok tuhaf. Henüz bir cihazda denemedim. –

+0

Bir cihazda denemenizi tavsiye ederim! – Ahsan

İlgili konular