标签: uiactivityviewcontroller

Facebook,Twitter图标未显示在iOS7上的UIActivityViewController中

我已添加此代码用于呈现UIActivityViewController:

-(IBAction)activityAction:(id)sender
{
    UIActivityViewController *activityViewController = [[UIActivityViewController alloc]initWithActivityItems:[NSArray arrayWithObjects:@"Hello Welcome!",[UIImage imageNamed:@"scene3.jpg"],nil] applicationActivities:nil];

     activityViewController.excludedActivityTypes = @[UIActivityTypePostToFacebook, UIActivityTypePostToTwitter, UIActivityTypePostToWeibo, UIActivityTypeAssignToContact];
    [self presentViewController:activityViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

iOS7中没有显示Facebook,Twitter和微博图标.在iOS6中,所有图标都正确显示.请参见下面的截图:

在此输入图像描述

我怎么解决这个问题?

objective-c uiactivityviewcontroller ios7

9
推荐指数
3
解决办法
1万
查看次数

使用UIActivityViewController自定义打印

我一直在使用UIPrintInteractionController在我的应用程序中打印图像,并且它工作得很好,因为我可以自定义页面,以便以适当的边距打印.

我正在尝试使用UIActivityViewController来做同样的事情,但是我遇到了一个块 - 每当我在activityItems中传入UIImage时,打印活动就变得可用,但是当它打印时没有利润,我不知道如何定制它.我试图使用UIMarkupTextPrintFormatter,然后它将图像打印出两页并且它的尺寸过大,因此部分图像被切断了页面.当我以NSData对象的形式传入图像时,UIPrintInteractionController似乎适当地调整了它的大小.

这是我试图在activityItems中传递的内容:

 NSString *markupText = [NSString stringWithFormat:@"<html><body><img src='%@'></body></html>",self.imgURL]; //imgURL is the url of the image on the internet
    UIMarkupTextPrintFormatter *htmlPrintF = [[UIMarkupTextPrintFormatter alloc] initWithMarkupText:markupText];
    htmlPrintF.contentInsets = UIEdgeInsetsMake(72.0, 72.0, 72.0, 72.0); // 1 inch margins
    htmlPrintF.maximumContentWidth = 6 * 72.0;
Run Code Online (Sandbox Code Playgroud)

理想情况下,我不想传递图像URL,因为下载图像时已经下载并显示一次图像需要花费时间,并保留在UIImage对象中.上面的代码为我提供了适当的边距,但图片的大小不合适,无法放在页面上.

回到使用UIPrintInteractionController并抛弃UIActivityViewController会更容易,但我希望在UIActivityViewController中将所有内容放在一个地方.

有关如何在使用UIActivityViewController时控制边距/图像大小的任何想法?

objective-c uiimage ios uiactivityviewcontroller

9
推荐指数
1
解决办法
2161
查看次数

Twitter图标未显示在设备上的iOS 7中的UIActivityViewController中

我正在使用UIActivityViewController将我的应用程序中的信息共享到Twitter和FB,这些信息已在"设置"中正确配置.代码是最简单的:

- (IBAction)share {
    NSString *postText = @"some text";
    UIImage *postImage = [UIImage imageNamed:@"myImage"];
    NSURL *postURL = [NSURL URLWithString:@"myUrl"];
    NSArray *activityItems = @[postText, postImage, postURL];

    UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:nil];
    activityController.excludedActivityTypes =
    @[
      UIActivityTypePrint,
      UIActivityTypeCopyToPasteboard,
      UIActivityTypeAssignToContact,
      UIActivityTypeSaveToCameraRoll,
      UIActivityTypeCopyToPasteboard,
      UIActivityTypeMail,
      UIActivityTypeMessage,
      UIActivityTypePostToWeibo,
      ];
    [activityController setCompletionHandler:^(NSString *activityType, BOOL completed) {
        if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
            if (completed) [self doSomethingForFB];
        } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
            if (completed) [self doSomethingForTwitter];
        }
    }];

    [self presentViewController:activityController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

这段代码就像模拟器上的魅力(iphone和ipad,ios7和ios6),但在我的设备(带iOS7的iPad)上,当ActivityViewController出现时,Twitter和FB就在那里,因为标签是可见的,但是他们的图标不见了.

这个类似问题的答案中 …

twitter facebook ios uiactivityviewcontroller

9
推荐指数
1
解决办法
3010
查看次数

如何取消UIActivityItemProvider并且不显示活动?

我正在使用UIActivityItemProvider子类来提供自定义数据.但有时获取数据失败,我不想提供活动(例如消息编写器).尝试[self cancel]return nil;item方法中,但消息编写器仍然显示(带有空消息).

nsoperation uiactivity uiactivityviewcontroller

9
推荐指数
1
解决办法
667
查看次数

UIActivityViewController问题iOS 7和iOS 8?

我正在为iPad构建一篇文章阅读应用程序.我已经集成了社交共享功能,这意味着用户可以在Facebook和谷歌邮件上分享文章.我正在UIActivityViewController用于分享.

有一个条形按钮项,当用户点击打开UIActivityViewController时.我更新了Xcode 6当我在模拟器上运行它运行正常但我在iOS 7的真实设备(iPad)上运行,应用程序在点击栏按钮项时崩溃.这是我的代码:

     - (IBAction)ysshareAction:(id)sender
       {

         NSURL *linkURL = [NSURL URLWithString:_DetailModal1[4]];//article url
         NSMutableAttributedString *stringText = [[NSMutableAttributedString alloc]  initWithString:_DetailModal1[0]];//_DetailModal1[0] contain article title////
        [stringText addAttribute:NSLinkAttributeName value:linkURL range:NSMakeRange(0, stringText.length)];
        NSArray * itemsArray = @[[NSString stringWithFormat:@"%@",_DetailModal1[0]], [NSURL URLWithString:_DetailModal1[4]]];
        NSArray * applicationActivities = nil;
        UIActivityViewController * AVC = [[UIActivityViewController alloc] initWithActivityItems:itemsArray applicationActivities:applicationActivities];
        AVC.popoverPresentationController.sourceView = _webView;
        [self presentViewController:AVC animated:YES completion:nil];
        [AVC setCompletionHandler:^(NSString *act, BOOL done)
        {

        if([act isEqualToString:UIActivityTypeMail]) {
         ServiceMsg = @"Mail sent!";
     } else if([act isEqualToString:UIActivityTypePostToTwitter]) {
         ServiceMsg = @"Article …
Run Code Online (Sandbox Code Playgroud)

objective-c ipad uipopovercontroller ios uiactivityviewcontroller

9
推荐指数
2
解决办法
2万
查看次数

如何设置UIActivityViewController Gmail共享主题不同于正文

我正在使用Google的Gmail Share Extension.我提供的实施:

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType;

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController;

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
Run Code Online (Sandbox Code Playgroud)

对于Mail客户端(来自Apple),它将进入下面的委托方法,但Gmail

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType;
Run Code Online (Sandbox Code Playgroud)

相反,它显示主题与正文相同.我想知道如何为Gmail共享选项设置与正文文本不同的主题.

iphone ios objective-c-blocks uiactivityviewcontroller

9
推荐指数
1
解决办法
2029
查看次数

如何在UIActivityViewController调用然后关闭后执行操作

我无法理解UIActivityViewController调用后如何执行操作.例如,当我使用以下代码保存图像时:

let image = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
let activity = UIActivityViewController(activityItems: [image], applicationActivities: nil)
presentViewController(activity, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

用户收到新窗口,可以在某处保存图像.成功保存图像后,我想执行一些操作(例如跳转到根视图控制器).但我无法弄清楚如何追踪这UIActivityViewController是关闭的.如果我在这个块之后编写代码,没有任何反应,正如我所理解的那样,因为这个代码是在活动VC中实现的,而不是在原始VC中实现的.

我认为这viewWillDisappear对我有帮助,但是它跟踪了原来的VC,我称之为活动VC,我无法弄清楚如何跟踪活动VC.与此同时,即使我有能力追踪此事件,仍然存在一个问题:除了取消之外,我怎么能有所不同?

ios uiactivityviewcontroller swift

9
推荐指数
1
解决办法
2998
查看次数

使用uiactivityViewcontroller分享视频

我正在开发一个应用程序,并希望使用uiactivityviewcontroller共享保存到我的文档目录中的图像视频和其他文件.图像和文件共享工作正常.图像共享代码

var textToShare : Any!
textToShare = UIImage(data:data)//data of an image
Run Code Online (Sandbox Code Playgroud)

存储在文档目录中的其他文件的代码.

var textToShare : Any!
textToShare = url//url of file saved into document directory
Run Code Online (Sandbox Code Playgroud)

但我不知道如何分享视频.在此之后,我使用以下代码来使用activityviewcontroller.

let activityViewController = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
    activityViewController.popoverPresentationController?.sourceView = self.view // so that iPads won't crash

    // exclude some activity types from the list (optional)
    activityViewController.excludedActivityTypes = [ UIActivityType.airDrop, UIActivityType.postToFacebook ]

    // present the view controller
    self.present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

uiactivityviewcontroller swift3

9
推荐指数
1
解决办法
3682
查看次数

UIActivityViewController在带有sourceView或barButtonItem的iPad上崩溃

我遇到了大多数人在试图UIActivityViewController在iPad上呈现时所面临的情况; 它崩溃了:

Terminating app due to uncaught exception 'NSGenericException', reason: 'UIPopoverPresentationController (<_UIAlertControllerActionSheetRegularPresentationController: 0x7fc4f2d87d00>) should have a non-nil sourceView or barButtonItem set before the presentation occurs.
Run Code Online (Sandbox Code Playgroud)

这是我的代码:

- (void)shareLeaflet
{
    NSString *forwardedString = [[NSString alloc] initWithFormat:@"Check out this leaflet\n\n %@ \n\nself.theURLToShare];
    UIActivityViewController *activityViewController = nil;

    if (IDIOM == IPAD)
    {
        NSLog(@"iPad");
        activityViewController.popoverPresentationController.sourceView = self.view;
//        activityViewController.popoverPresentationController.sourceRect = self.frame;
        [self presentViewController:activityViewController
                           animated:YES
                         completion:nil];

    }
    else
    {
        NSLog(@"iPhone");
        activityViewController = [[UIActivityViewController alloc] initWithActivityItems:[NSArray arrayWithObjects:forwardedString, nil] applicationActivities:nil];
        [self presentViewController:activityViewController animated:YES completion:nil];


    } …
Run Code Online (Sandbox Code Playgroud)

objective-c uiwebview ipad ios uiactivityviewcontroller

8
推荐指数
1
解决办法
1万
查看次数

UIActivityViewController在iOS-11中复制url

当用户仅从iOS 11中的活动控制器中选择"复制"时,该URL将重复.它在iOS 10上正常运行

使用以下代码

@IBAction func shareButtonPressed() {
    guard let url = URL(string: "http://google.com") else { return }
    let shareText = "Share Text!"
    let items: [Any] = [shareText, url]
    let activityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
    present(activityViewController, animated: true, completion: nil)
}
Run Code Online (Sandbox Code Playgroud)

将共享文本提供为:

Share Text! 
http://google.comhttp://google.com
Run Code Online (Sandbox Code Playgroud)

uiactivityviewcontroller swift ios11

8
推荐指数
1
解决办法
809
查看次数