标签: uiactivityviewcontroller

UIActivityViewController - 保留从URL读取的附加文件的文件名

iOS6 UIActivityViewController是否有相同的代码(下面的代码)?问题是,我可以通过URL共享数据并保留文件名吗?截至目前,我可以弄清楚如何做到这一点的唯一方法是将PDF转换为NSData并将数据添加为activityItem.工作正常,但我失去了附加的pdf的名称.

[composer addAttachmentData:pdfData mimeType:@"application/pdf" fileName:@"myPDF.pdf"];
Run Code Online (Sandbox Code Playgroud)

pdf email xcode ios uiactivityviewcontroller

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

UIActivityViewController,无法同时满足约束,在为 iOS 7.x 编译时在设备 8.x 上

我有一个UIActivityViewController显示在UIViewController(此处命名为 viewCon)上的:

// items contains text and/or image
UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePostToWeibo, UIActivityTypeAssignToContact];

[viewCon presentViewController:activityViewController animated:YES completion:NULL];
Run Code Online (Sandbox Code Playgroud)

我正在使用 Xcode 6.1。我的应用程序的部署目标为 7.0。我在两部物理 iPhone(5S (8.0.2) 和 6 (8.1))上运行它。
当我在物理设备上(而不是在模拟器上)为 iOS 7.x 编译我的应用程序时,UIActivityViewController会显示并工作,但它会出现在所有屏幕上(高度太大),并且此日志消息打印在输出中:

Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want. Try this:
(1) look at each constraint and try to figure out which you don't expect;  
(2) …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uiactivityviewcontroller

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

仅通过 AirDrop 分享

我想拿出带有 AirDrop 的共享表作为我的应用程序中的唯一选项。

在 iOS 7 中,我可以简单地将所有共享类型添加到( , , ...)excludedActivityTypes的属性中UIActivityViewControllerUIActivityTypeMessageUIActivityTypeMail

但现在在 iOS 8 中,通过应用程序扩展,用户可能会出现额外的共享提供程序。有没有办法只显示AirDrop ?

UIActivityViewController *controller = [[UIActivityViewController alloc] initWithActivityItems:@[[NSURL URLWithString:url]]
                                                                         applicationActivities:nil];

NSArray *excludedActivities = @[UIActivityTypePostToTwitter, UIActivityTypePostToFacebook,
                                UIActivityTypePostToWeibo,
                                UIActivityTypeMessage, UIActivityTypeMail,
                                UIActivityTypePrint, UIActivityTypeCopyToPasteboard,
                                UIActivityTypeAssignToContact, UIActivityTypeSaveToCameraRoll,
                                UIActivityTypeAddToReadingList, UIActivityTypePostToFlickr,
                                UIActivityTypePostToVimeo, UIActivityTypePostToTencentWeibo];
Run Code Online (Sandbox Code Playgroud)

ios uiactivityviewcontroller airdrop uiactivitytypeairdrop

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

UIActivityViewController 不适用于 iPad?iOS 8

我遵循了类似的 SO 问题的建议,但似乎无法完成这项工作。我正在开发一个游戏,它报告最后一个分数,然后是最后一个分数的共享按钮。

这适用于 iPhone,我的 iPad 代码如下所示。我一点击“分享”按钮,iPad 版本就会崩溃。此代码来自Coding Explorer 上的本教程

iPad 代码(不起作用)

- (IBAction)shareButton:(id)sender;
{
    NSString * text = [NSString stringWithFormat:@"I just scored %li in Flying Freddy. Think you can beat it? https://itunes.apple.com/app/id1033007818", (long)_score];

NSArray *objectsToShare = @[text];

UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:objectsToShare applicationActivities:nil];

NSArray *excludeActivities = @[UIActivityTypeAirDrop,
                               UIActivityTypePrint,
                               UIActivityTypeAssignToContact,
                               UIActivityTypeSaveToCameraRoll,
                               UIActivityTypeAddToReadingList,
                               UIActivityTypePostToFlickr,
                               UIActivityTypePostToVimeo];

activityVC.excludedActivityTypes = excludeActivities;

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

iPhone 代码(有效)

- (IBAction)ShareIt {

    NSString * text = [NSString stringWithFormat:@"I just scored %li in …
Run Code Online (Sandbox Code Playgroud)

objective-c ipad ios uiactivityviewcontroller

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

看起来Apple在UIActivityViewController中错误地转换了字符串

我试图找出为什么UIActivityViewController发送一个稍微转换的字符串来共享Mail和微信.

这是我的代码:

let activityViewController = UIActivityViewController(activityItems: ["http://preprodgo.travelstart.com/search-on-index?version=3&timestamp=2017-09-15_10-31-27-031"], applicationActivities: nil)

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

当由Mail共享时,它显示为:

http://preprodgo.travelstart.com/search-on-index?version=3×tamp=2017-09-15_10-31-27-031
Run Code Online (Sandbox Code Playgroud)

系统版本为10.3.3.

url ios uiactivityviewcontroller swift

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

为什么 UIActivityViewController 不显示本地化的取消字符串?

如下图所示:

在此输入图像描述

尽管设备语言已设置为阿拉伯语(您可以通过检查状态栏和活动视图控制器标题来识别它)。但是,取消按钮仍然具有“取消”标题;由于我们无法更改其标题,我认为它应该根据设备语言(在我的情况下是阿拉伯语)自动更改(要本地化),如本答案中所述。

我在这里缺少什么?

localization ios uiactivityviewcontroller ios11

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

使用UIActivityViewController检测启动了哪个应用

使用启动外部应用程序时UIActivityViewController,我们可以检测到哪个应用程序completionHandler吗?

Apple的文档中,提到了一个属性UIActivity.ActivityType,但似乎仅用于检测“内置活动”。我如何检测是否,例如。WhatsApp Messenger已启动?

ios uiactivityviewcontroller swift

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

将pdf文档保存到iOS文件应用程序时如何指定文件名?

使用 PDFKit,我在我的应用程序中创建了一个 pdf 文档。我可以成功地在预览中显示它,并在预览控制器中使用以下代码向用户展示共享操作:

@objc func shareAction(_ sender: UIBarButtonItem)
{
    if let data = documentData
    {
        let vc = UIActivityViewController(activityItems: [data], applicationActivities: [])
        present(vc, animated: true, completion: nil     
    }
}
Run Code Online (Sandbox Code Playgroud)

documentData包含创建的 pdf 文档。

当用户选择“保存到文件”时,文档将获得默认名称“PDF Document.pdf”,用户可以更改该名称。

如何提供不同的默认文件名?

ios uiactivityviewcontroller files-app ios-pdfkit

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

在 iPad 上将 UIActivityViewController 显示为表单

我试图在不使用弹出窗口的情况下显示共享表,即没有源视图或箭头。

这是我的代码,从基本的单视图应用程序开始:

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func didTapShare(_ sender: UIButton) {
        let activity = UIActivityViewController(activityItems: ["banana"], applicationActivities: nil)
        
        if UIDevice.current.userInterfaceIdiom == .pad {
            activity.modalPresentationStyle = .formSheet
//            activity.preferredContentSize = CGSize(width: 400, height: 400)
        }
        
        present(activity, animated: true, completion: nil)
    }
    
}

Run Code Online (Sandbox Code Playgroud)

这当然是崩溃的

"UIPopoverPresentationController (<UIPopoverPresentationController: 0x7fce07507900>) should have a non-nil sourceView or barButtonItem set before the presentation occurs."
Run Code Online (Sandbox Code Playgroud)

但我不希望它看起来像弹出窗口,或者有箭头——我希望它显示为表单,位于屏幕中间。

这是它在“照片”应用程序中的外观:

照片表格

ios uiactivityviewcontroller

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

改变Modal UIActivityViewController的外观

如何更改UIActivityViewController模态共享操作中使用的邮件撰写对象的导航栏的外观?

UINavigationBar  - 错误的色调

UIActivityViewController符合UIAppearance,所以我认为以下工作确实有效,但事实并非如此.导航栏保持默认蓝色.

activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];
Run Code Online (Sandbox Code Playgroud)

语境:

    - (IBAction)share {
        NSString *textToShare = ...;
        NSURL *url = ...;

        NSArray *activityItems = [[NSArray alloc]  initWithObjects:textToShare,url,nil];

        UIActivity *activity = [[UIActivity alloc] init];
        NSArray *applicationActivities = [[NSArray alloc] initWithObjects:activity, nil];
        UIActivityViewController *activityVC =
        [[UIActivityViewController alloc] initWithActivityItems:activityItems applicationActivities:applicationActivities];
        [activityVC setExcludedActivityTypes:[NSArray arrayWithObjects:                                              UIActivityTypeMessage,UIActivityTypeCopyToPasteboard,
UIActivityTypeAssignToContact,UIActivityTypePostToWeibo,                                              UIActivityTypePrint,UIActivityTypeSaveToCameraRoll,
                                              nil]];

        activityVC.navigationController.navigationBar.tintColor = [UIColor greyColor];

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

如何将UINavigationBar蓝色的色调更改为灰色.

objective-c modalviewcontroller ios uiappearance uiactivityviewcontroller

2
推荐指数
1
解决办法
2568
查看次数