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...
Anonymous User
01-Aug-2015Try this:
instead of this:
With that you move openURL out of if block canOpenURL