UIActivityViewController 自动“点击”链接 iOS 7

Posted

技术标签:

【中文标题】UIActivityViewController 自动“点击”链接 iOS 7【英文标题】:UIActivityViewController Automatically 'Clicking' Link iOS 7 【发布时间】:2013-10-25 03:41:06 【问题描述】:

我有一个基本的 UIActivityViewController 共享一些文本和一个 URL。共享选项是电子邮件、SMS、Twitter 和 Facebook。在 ios 6 中一切正常,但在 iOS 7 中,当我选择 Twitter 或 Facebook 时,无需触摸任何东西,我的设备会自动关闭我的应用程序,打开 Safari 并转到我要共享的 URL。这可能是什么原因造成的?

代码(CustomActivityItemProvider 是基于共享器自定义文本的子类):

if ([UIActivityViewController class])  // if class exists = ios6+

    // Create array for sharing
    CustomActivityItemProvider *textToShare = [[CustomActivityItemProvider alloc]
                                               initWithStandardText:@"Text to share.\n"];

    NSURL *urlToShare = iTunesShort ? iTunesShort : [NSURL URLWithString:iTunesLink];

    NSArray *activityItems = @[textToShare, urlToShare];

    // Show sharing view
    UIActivityViewController *activityVC = [[UIActivityViewController alloc]
                                            initWithActivityItems:activityItems applicationActivities:nil];
    activityVC.excludedActivityTypes = @[UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                         UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll];

    [self presentViewController:activityVC animated:TRUE completion:nil];    

【问题讨论】:

能否上传代码。 我已经完美地测试了它的工作。尝试差异。像 yahoo pr google 这样的 url,然后告诉什么 hhpening。 是的,你是对的。 www.google.com 工作正常。 那么url里面有东西,url是关于什么的? 我已将范围缩小到短网址。完整的 URL 可以正常工作,但是如果我使用缩短服务来生成短 URL,我就会遇到这个问题。 【参考方案1】:

所以我仍然不知道为什么只有缩短的 URL 会导致此问题,但解决此问题的解决方案是将 urlToShare 包含在 textToShare 中。

// Create array for sharing
NSString *urlToShare = iTunesShort ? iTunesShort : iTunesLink;
NSString *textWithUrl = [NSString stringWithFormat:@"Text to share.\n%@", urlToShare];
CustomActivityItemProvider *textToShare = [[CustomActivityItemProvider alloc]
                                           initWithStandardText:textWithUrl];

NSArray *activityItems = @[textToShare];

【讨论】:

以上是关于UIActivityViewController 自动“点击”链接 iOS 7的主要内容,如果未能解决你的问题,请参考以下文章

UIActivityViewController 背景颜色

UIActivityViewController 共享 UIActivity 未显示

UIActivityViewController 不适用于 WKWebView

限制 UIActivityViewController 共享扩展活动

尝试呈现 UIActivityViewController 时崩溃

更改 UIActivityViewController 的 navigationBar 的颜色