我有多个共享按钮调用openURL。按下第一个按钮后,它会打开Safari进行分享,当我回到我的应用程序时,所有按钮都不起作用。(只支持iOS 7.1,但iOS 8也可以)
下面是我的代码:- (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]];
}
}
谢谢。
试试这个:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]];
而不是:
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:sharingURL]])
{
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:sharingURL]];
}
将openURL移出if块canOpenURL