RSS 提要文章的共享功能

Posted

技术标签:

【中文标题】RSS 提要文章的共享功能【英文标题】:Sharing functionality for an rss feed article 【发布时间】:2015-08-24 14:52:44 【问题描述】:

我的 rss 应用程序几乎完成了,但我需要在网页视图的右上角有一个“分享”按钮,用于查看文章。到目前为止,我已经设置了代码以在文章标题旁边显示“操作”按钮,但由于没有实现真正的代码,它什么都不做:

我通过基于用于表格视图单元格的代码实现了这一点,其中实现了“刷新”选项,我只是更改了图标。我使用一个免费的开源项目将这个应用程序放在一起,但我在弄清楚如何使该按钮显示从应用程序底部拉出的共享表时遇到了一些麻烦,如下所示:

(图片来自谷歌)

我试图在导航栏中直接实现一个按钮,但我不能,因为网络视图覆盖了整个屏幕:

因此,由于我无法将按钮直接放入控制器中,因此我必须像这样对其进行编码:

在我的 RSSDetail.m 类里面的“-(void)viewDidLoad ”:

self.navigationItem.rightBarButton = [[UIBarButtonItem = [[UIBarButtonItem       
alloc] initWithBarButtonSystemItem: UIBarButtonSystemItemAction target:self   
action@selector(shareButton)]; 

我在同一个类文件中也有这个:

-(void) shareButton  

  self.webView.userInteractionEnabled = YES; 
  self.webView.aplha = 0.3;  

   

如您所见,该类中的一小段代码将图标放在我想要的位置。但我的问题是,有没有我可以在我的“-(void) shareButton”方法中实现的代码来实现共享功能?

另外,我需要按钮实际上说“共享”而不是图标,无论如何我可以更改“操作”rightBarButton 方法的代码以允许我输入单词而不是图标?

提前致谢

【问题讨论】:

【参考方案1】:

据我了解,您希望实现 ios 原生共享功能。下面是一个实现示例:

- (void)shareButtonPressed 
    // 1
    // If you want to use UIImage, make sure you have image with that name, otherwise it will crash. 
    NSArray *activityItems = @[@"Message to share", [UIImage imageNamed:@"imageToShare"]];

    // 2
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];

    // 3
    activityViewController.excludedActivityTypes = @[UIActivityTypeCopyToPasteboard, UIActivityTypeAirDrop, UIActivityTypeAssignToContact, UIActivityTypeAddToReadingList, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll, UIActivityTypeMessage, UIActivityTypeMail];

    // 4
    [activityViewController setCompletionHandler:^(__unused NSString *activityType, __unused BOOL completed)
        // Custom completion implementation
    ];
    [self presentViewController:activityViewController animated:YES completion:NULL];

说明:

    准备您要共享的活动项目,例如字符串、图像、URL。 使用您要共享的项目 + 自定义活动初始化活动视图控制器(仅在需要时)。 自定义活动意味着您将使用 UIActivity 创建自己的按钮,并带有自己的动作、图像、标题(更多信息here)。例如,实现对没有共享扩展的第三方应用的共享。 您可以在此处指定排除的活动类型。在此示例中,我删除了所有内容,例如副本、空投等。 在完成块中,您可以看到选择了哪个活动类型以及用户是否取消。

关于UIActivityViewController的更多信息可以在here找到。

关于您关于 UIBarButtonItem 的问题的第二部分。 UIBarButtonItem 可以使用自定义标题初始化:

UIBarButtonItem *shareButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"Share" style:UIBarButtonItemStylePlain target:self action:@selector(shareButtonPressed)];
self.navigationItem.rightBarButtonItem = shareButtonItem;

注意 UIBarButtonItem 有 UIBarButtonItemStyle ,你可以改变它。 UIBarButtonItemStylePlain (将创建一个具有常规字体的按钮) 和 UIBarButtonItemStyleDone (将创建一个具有粗体字体的按钮)

【讨论】:

感谢您的帮助。我能够将图标更改为“共享”一词,但就本机共享功能的编码而言,我似乎无法做到正确。我尝试了您给我的代码并对其进行了编辑,但是当我按下共享按钮时我收到“线程 1:信号 SIGABRT”错误。我需要它做的就是将文章的标题和链接分享给用户选择分享它的任何选择 这可能是因为您没有更改/删除 [UIImage imageNamed:@"imageToShare"。它只是作为一个例子。确保指定正确的项目。如果不这样做,应用程序将尝试使用 nil 对象初始化数组并崩溃。 我确实删除了它,我查看了您发布的链接中的示例并将其替换为其中的一些。尝试使用我的项目中的“feedTitle”和“feedURL”,但仍然出现错误 可以上传截图吗? 看不到任何东西。在 cmets 中显示图像的最佳方式是提供任何第三方网站的 URL。

以上是关于RSS 提要文章的共享功能的主要内容,如果未能解决你的问题,请参考以下文章

在RSS提要中显示文章缩略图

共享内存访问导致 rss 增加

从 RSS 提要获取实际内容

如何与 facebook、twitter 等共享 web 应用程序

RSS/PSS/VSZ

RSS提要核心数据保存在uitableview中