2012-10-07 16 views
16

iOS6'dan bu yana, uygulamanın Safari'yi başlatıp başlatmayacağını anlayamıyorum. Safari cihazda kısıtlı iseUIApplication's -canOpenURL: -openURL: dönüş yanıltıcı sonucu döndürme

bir URL açmaya çalışırken, ve neyin yanlış gittiğini hiçbir belirti yokken, hiçbir şey olmuyor (> Genel> Sınırlamalar Ayarları): Ancak

NSURL *url = [NSURL URLWithString:@"http://www.google.com"]; 
[[UIApplication sharedApplication] canOpenURL:url]; // Returns YES 
[[UIApplication sharedApplication] openURL:url]; // Returns YES 

, Safari yapar değil başlatıldı ve kullanıcı düğmelerimin neden "bozuk" olduğunu merak ediyor.

Bu benim için bir hata gibi görünüyor, bu yüzden bir radar dosyalıyorum # 12449905.

Bu sorunu çözmenin başka bir yolu var mı?

+0

Radarlar halka açık mı? Kendime gönderdiğim radarları aramanın yanında herhangi bir "arama" düğmesi bulamıyorum… – jcayzac

+0

@jcayzac Hayır, ama openradar'a ekledim: http://openradar.appspot.com/12449905 – hwaxxer

+0

https ile çalışıyor mu? : // '? Bir hata olduğu için, rastgele bir sebep olmadan rastgele bir şekilde farklı bir URL şemasıyla çalışmaya karar verebilir. – Greg

cevap

2

Bu bir Apple hatasıysa, o zaman yapmanız gereken şey bunun etrafında program yapmaktır. yöntemi oluşturun görünüm denetleyicisinde

- (void)applicationWillResignActive:(UIApplication *)application { 
    self.openingExternalProgram = YES; 
} 

, aşağıdaki gibi bir özelliği ayarlayabilirsiniz, uygulama temsilci olarak

[self performSelector:@selector(notifyUserOfRestrictedAccess) withObject:self afterDelay:.5]; 

: Kullanıcı düğmesini tıkladığında, her zaman böyle bir şey yazabilirsiniz Bunun gibi:

-(void) notifyUserOfRestrictedAccess { 

    if (!appDelegate.openingExternalProgram) { 
     // Message the user via UIAlertView about restricted Safari access 
    } 
    appDelegate.openingExternalProgram = NO; 
} 

Eminim daha iyi yollar vardır, ama en azından Apple'da beklemek zorunda değilsiniz.

+0

Teşekkürler ... bildirimi dinlemek kesinlikle daha iyi bir yoldur. –

İlgili konular