Home > DeveloperSection > Forums > IOS, button not work after openURL in ios 7
Felix Pickles
Felix Pickles

Total Post:24

Points:168
Posted on    July-31-2015 12:01 AM

 iPhone iPhone  Ios  Objective C 
Ratings:


 1 Reply(s)
 833  View(s)
Rate this:

I coding a ios app, it have muti button share by openURL. After fisrt button press, it open safari for share, and when I back to my app, all button is not work. (only ios 7.1, but ios 8 worked fine)

This is my code:

-(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]];

    }

}

Thanks in advance...



Glen Martin
Glen Martin

Total Post:27

Points:191
Posted on    August-01-2015 12:16 AM

Try this:

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

instead of this:

if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]])

    {

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

    }

With that you move openURL out of if block canOpenURL


Don't want to miss updates? Please click the below button!

Follow MindStick