2015-07-31 4 views
1

У меня есть несколько общих кнопок, которые вызывают openURL. После нажатия кнопки fisrt он открывает Safari для совместного доступа, и когда я вернусь в свое приложение, все кнопки не работают. (Только IOS 7.1, но IOS 8 прекрасно работает)UIButton не работает после openURL в ios 7

Здесь ниже мой код:

- (IBAction)btnFacebook_TouchUpInSide:(id)sender 
{ 
    NSLog(@"Touch FaceBook"); 

    NSString *shareUrl = @"some url"; 

    NSString *shareText = @"some text"; 

    NSString *shareDescription = @"some text"; 

    NSString *sharePictureUrl = @"some text"; 

    NSString *sharingURL = [self encodeURL:[NSString stringWithFormat:@"https://www.facebook.com/dialog/feed?app_id=388711667988471&display=page&caption=%@&description=%@&picture=%@&link=%@&redirect_uri=%@", shareText, shareDescription, sharePictureUrl, shareUrl, shareUrl]]; 

    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
    { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
    } 
} 

- (IBAction)btnTwitter_TouchUpInSide:(id)sender 
{ 
    NSLog(@"Touch Twitter"); 

    NSString *shareUrl = @"some url"; 

    NSString *shareText = @"some text"; 

    NSString *sharingURL = [self encodeURL:[NSString stringWithFormat:@"twitter://post?message=%@", [self encodeURL:[NSString stringWithFormat:@"%@ %@", shareUrl, shareText]]]]; 

    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
    { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
    } 
    else 
    { 
     NSLog(@"Open web to share twitter!"); 

     sharingURL = [NSString stringWithFormat:@"https://twitter.com/intent/tweet?url=%@&text=%@&count=none/",[self encodeURL:shareUrl],[self encodeURL:shareText]]; 

     if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
     { 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
     } 
    } 
} 

- (IBAction)btnPinterest_TouchUpInSide:(id)sender 
{ 
    NSLog(@"Touch Pinterest"); 

    NSString *shareUrl = @"some url"; 

    NSString *shareText = @"some text"; 

    NSString *shareMedia = @"some text"; 

    NSString *sharingURL = [self encodeURL:[NSString stringWithFormat:@"pinit12://pinterest.com/pin/create/link/?url=%@&media=%@&description=%@", shareUrl, shareMedia, shareText]]; 

    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
    { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
    } 
    else 
    { 
     NSLog(@"Open web to share Pinterest!"); 

     sharingURL = [self encodeURL:[NSString stringWithFormat:@"https://www.pinterest.com/pin/create/link/?url=%@&media=%@&description=%@", shareUrl, shareMedia, shareText]]; 

     if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
     { 
      [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
     } 
    } 
} 

- (IBAction)btnLinkedIn_TouchUpInSide:(id)sender 
{ 
    NSLog(@"Touch LinkedIn"); 

    NSString *shareUrl = @"some url"; 

    NSString *shareTitle = @"some text"; 

    NSString *shareSummary = @"some text"; 

    NSString *shareSource = @"some text"; 

    NSString *sharingURL = [NSString stringWithFormat:@"https://www.linkedin.com/shareArticle?mini=true&url=%@&title=%@&summary=%@&source=%@",[self encodeURL:shareUrl],[self encodeURL:shareTitle],[self encodeURL:shareSummary],[self encodeURL:shareSource]]; 

    if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
    { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
    } 
} 

Спасибо.

ответ

0

Попробуйте это:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 

вместо этого:

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]]) 
    { 
     [[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]]; 
    } 

С, что вы двигаетесь OpenUrl из если блок canOpenURL

+0

ли эта работа для вас ? – SanitLee

Смежные вопросы