标签: uiactivityviewcontroller

创建类似于新的iOS 6按钮共享的自定义共享视图

使用新的iOS 6,Apple添加了新的UIActivityViewController(图像A)共享菜单,该菜单只有很少的图标按钮可供共享,而不仅仅是旧的UIActionSheet文本按钮.

我想显示一个UIActivityViewController,但有自定义按钮.我知道他们有一个可以显示的默认应用程序列表(邮件,消息,Facebook,Twitter等...)但我想自定义当你点击这些按钮时会发生什么.当您单击邮件共享图标时,它会打开带有新邮件的邮件应用程序,例如我喜欢它,如果单击邮件应用程序时,它会打开Twitter应用程序(不是真的,只是与默认值不同的东西) .现在我似乎找不到在按钮后面添加自己的方法的方法.

使用最新的ShareKit,他们添加了Instagram共享,当您选择与其共享时,将显示一个看起来与UIActivityViewController屏幕完全相同的新视图(图像B).他们似乎已经想出如何添加自定义按钮来执行自定义操作.我搜索了ShareKit代码,但似乎无法找到它在哪里或如何运作.

也许我问的是甚至不可能,但任何帮助表示赞赏!

图像A.图像A.

图像B.图像B.

iphone objective-c ios sharekit uiactivityviewcontroller

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

在UIActivityViewController上显示url附件的缩略图

当您使用UIActivityViewController共享URL时,它只显示Safari指南针.我知道这应该向用户显示他们正在共享链接,但是有可能让它显示缩略图/图像吗?我意识到如果我尝试共享图像会这样做,但我想在这里分享一个链接.

objective-c sharing ios uiactivityviewcontroller

6
推荐指数
1
解决办法
1337
查看次数

发布链接到Facebook,包括应用程序URL方案 - iOS 6

我正在使用UIActivityViewController从我的应用程序内共享图像和网址.我在格式化facebook帖子时遇到了麻烦.我使用子类附加图像,UIActivityItemProvider并以相同的方式提供帖子的文本.

我想添加一个网址,但它需要我的应用程序自定义网址方案就像这样 myurl://image?url=http://imageurl.com

问题是,当发布时,只有网址的后半部分是可点击的(从http://开始).这意味着它无法使用网址打开我的应用.

还有另一种方法吗?我知道我可以在Facebook上创建一个应用程序,但是如何使用UIActivityViewController?将两者结合在一起?

谢谢

facebook social-networking ios uiactivityviewcontroller

6
推荐指数
1
解决办法
1084
查看次数

Facebook app API密钥和UIActivityViewController

从UIActivityViewController发布到Facebook时是否可以提供Facebook API密钥?

如果没有,那么如何添加要与UIActivityViewController一起使用的Facebook SDK呢?

我基本上想使用共享表来制作Facebook帖子,但希望它与我的应用程序进行深度链接.

可能?

facebook ios uiactivityviewcontroller

6
推荐指数
1
解决办法
651
查看次数

在whatsapp中分享多个视频

我想在whatsapp中分享多个视频.我是使用UIActivityViewController进行的.首先我将视频存储在iPhone上并发送URL(NSURL).如果我发送一个URL它可以工作但如果我发送多个URL它不起作用.UIActivityViewController做不显示whatsapp图标.

NSURL *urlOne = url;
NSURL *urlTwo = url;

NSArray *items  = [NSArray arrayWithObjects:urlOne,urlTwo,nil];

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
NSArray *excludedActivities = @[UIActivityTypePostToWeibo,UIActivityTypeMail,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact,UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo,UIActivityTypeAirDrop, UIActivityTypePostToTencentWeibo];
controller.excludedActivityTypes = excludedActivities;
[self presentViewController:controller animated:YES completion:nil]; 
Run Code Online (Sandbox Code Playgroud)

我想知道,whatsapp支持多个视频共享,如果它支持如何做到这一点?

objective-c ios whatsapp uiactivityviewcontroller

6
推荐指数
1
解决办法
849
查看次数

如何在iOS 9中创建共享按钮?

在我的应用程序中,我想创建一个分享按钮与WhatsApp,Facebook,Twitter,邮件这样.

这是我的代码

-(IBAction)share:(id)sender
{
NSString *shareText = @"Hi This is a Reward Game App";
NSArray *itemsToShare = @[shareText];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:itemsToShare applicationActivities:nil];
activityVC.excludedActivityTypes = @[UIActivityTypePostToWeibo,UIActivityTypePostToTwitter,UIActivityTypePostToFacebook,UIActivityTypeMail,UIActivityTypeMessage,UIActivityTypeAssignToContact,UIActivityTypePostToTencentWeibo];
[self presentViewController:activityVC animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

我正在写这个代码我的模拟器显示这样,

在此输入图像描述

它只显示邮件和Facebook图标,我想要像这样的无聊的whatsup图标消息.

objective-c ios uiactivityviewcontroller ios9

6
推荐指数
1
解决办法
7249
查看次数

当我选择"打印"菜单并取消它时,在iOS 10.0上不调用UIActivityViewController.completionWithItemsHandler

我创建了一个简单的应用程序,使用UIActivityViewController如下.

    let text = "Test Text"
    let printData = UISimpleTextPrintFormatter(text: text)
    let vc = UIActivityViewController(activityItems: [text, printData], applicationActivities: nil)
    vc.completionWithItemsHandler = { (type,completed,items,error) in
        print("completed. type=\(type) completed=\(completed) items=\(items) error=\(error)")
    }

    vc.modalPresentationStyle = .popover
    vc.popoverPresentationController?.sourceView = self.openActivityButton
    vc.popoverPresentationController?.sourceRect = self.openActivityButton.bounds
    vc.popoverPresentationController?.permittedArrowDirections = .up
    vc.popoverPresentationController?.delegate = self

    self.present(vc, animated: true) { () in
    }
Run Code Online (Sandbox Code Playgroud)

我在iOS 10(Xcode 8.0 beta 6)上运行此应用程序.

  • 当我关闭活动对话框时,completionWithItemsHandler会调用它.
  • 当我选择"复制"活动时,completionWithItemsHandler会调用它.
  • 当我选择"邮件"活动并取消它时,completionWithItemsHandler会调用它.
  • 但是,当我选择"打印"的活动,并取消它,将completionWithItemsHandler叫.

这种奇怪的行为发生在iOS 10上,但没有发生在iOS9上(处理程序是在iOS9上调用的)

这是iOS 10的错误吗?如果是这样,是否有任何变通方法来检测UIActivityController …

uiactivityviewcontroller ios10 xcode8

6
推荐指数
1
解决办法
2914
查看次数

iOS:如果与"消息"选项共享则崩溃

我们的应用仅支持纵向模式.介绍UIActivityViewController的工作原理.

但是,与"消息"选项共享会导致应用崩溃:

***由于未捕获的异常'UIApplicationInvalidInterfaceOrientation'而终止应用程序,原因:'支持的方向与应用程序没有共同的方向,[MFMessageComposeViewController shouldAutorotate]返回YES'

与另一个选项共享,例如Facebook Messenger,可以使用.

像这样的类似SO问题的解决方案不起作用,因为他们建议支持所有方向.我们只想支持肖像.

1)我们如何支持"消息"共享选项,同时仅支持纵向方向,即仅支持Info.plist中的纵向方向?

2)为什么我们能够在Info.plist中仅支持纵向的其他应用程序中支持"消息"共享选项,但不支持此选项?我们应该在哪里寻找调试目的?

    // Define share objects
    let objectsToShare = ["test message"] as [Any]

    // Configure UIActivityViewController
    let activityViewController = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
    activityViewController.excludedActivityTypes =
        [UIActivityType.addToReadingList,
         UIActivityType.assignToContact,
         UIActivityType.print,
         UIActivityType.copyToPasteboard]

    // Define completion handler
    activityViewController.completionWithItemsHandler = doneSharingHandler

    // Show UIActivityViewController
    present(activityViewController, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

ios mfmessagecomposeviewcontroller uiactivityviewcontroller swift

6
推荐指数
1
解决办法
699
查看次数

UIActivityViewController在iOS 11中显示“无法加载”行

我在应用程序的多个先前版本中使用了UIActivityViewController实例,以便通过AirDrop和其他服务共享内容。现在,即使没有重新编译,在iOS 11 Beta中运行应用程序时,对话框(UIActivityViewController实例)也会显示以下行,并显示消息“无法加载”

在此处输入图片说明

这是代码:

let handlerOk = { () -> Void in
    let activityItems = [NSURL(fileURLWithPath: fullPath, isDirectory: true)]
    self.viewControllerShare = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)

    if let viewControllerShare = self.viewControllerShare {
        viewControllerShare.popoverPresentationController?.sourceView = sender

        let excludedActivities = [
            UIActivityType.postToFacebook,
            UIActivityType.postToTwitter,
            UIActivityType.postToWeibo,
            //UIActivityType.message,
            //UIActivityType.mail,
            UIActivityType.print,
            UIActivityType.copyToPasteboard,
            UIActivityType.assignToContact,
            UIActivityType.saveToCameraRoll,
            UIActivityType.addToReadingList,
            UIActivityType.postToFlickr,
            UIActivityType.postToVimeo,
            UIActivityType.postToTencentWeibo,
            UIActivityType.openInIBooks
        ]
        viewControllerShare.excludedActivityTypes = excludedActivities

        self.present(viewControllerShare, animated: true, completion: nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

目前,我正在Swift 4中使用XCode 9进行编译,但是如上所述,如果在iOS 11中运行该应用的旧版本(与XCode 8编译),我认为这并不重要。 (来自TestFlight)问题是相同的。因此,这确实看起来像是iOS 11 API问题...

关于对话框初始化,是否有任何新内容可能阻止“无法加载”行出现?

编辑:我测试了使用相同共享对话框的第三方应用程序(来自Apple),发现该行属于iCloud。但是我没有在我的应用程序中使用iCloud,所以以前的UIActivityViewController行为是正确的:它什么也没显示。因此,我做了一个实验:从iOS的“设置”中禁用了该第三方应用程序的iCloud权限,它显示了同样不友好的“无法加载”消息。我希望这不是最终的iOS 11版本的工作方式,而只是一个Beta问题。

就是说,仍然欢迎解决方法!谢谢!

uiactivityviewcontroller ios11

6
推荐指数
0
解决办法
807
查看次数

使用UIActivityViewController即时使用保存到iCloud

如果我使用以下代码

NSArray * activityItems = @[tempFileURL];

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


[self.parentViewController presentViewController: activityViewController
                                        animated: YES
                                      completion: nil];
Run Code Online (Sandbox Code Playgroud)

然后选择"保存到文件",我看到以下对话框:

保存到文件

我想先介绍一下这个对话框,而不需要先去UIActivityViewController(以及"保存到文件"选项).我无法找到另一种方法来做到这一点.有什么建议?

具体来说,我的问题归结为:我怎样才能让用户指定文件应保存的位置而不进行操作UIActivityViewController

save icloud uiactivityviewcontroller

6
推荐指数
1
解决办法
196
查看次数