标签: uiactivityviewcontroller

UIActivityViewController中共享提供程序的不同数据

我试图UIActivityViewController用一个长NSString的数据作为数据.如果我输入一个> 140个字符的字符串,则其中的推文表格不会显示该字符串.如果我在将字符串提供给控制器之前将UIActivities其截断,则所有字符串都会被截断.我不希望Facebook或消息被截断.

有没有办法给不同的字符串UIActivities

谢谢!

(例如,Marco Arment的The Magazine应用程序通过截断字符串后跟@TheMagazineApp进行此操作UIActivityPostToTwitter,以及其他内容UIActivities.)

objective-c ios ios6 uiactivityviewcontroller

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

UIActivityViewController UIActivityViewControllerCompletionWithItemsHandler

  • 项目清单

使用Swift作为在iOS 8中运行的应用程序,我需要编写一个完成处理程序,UIActivityViewController以捕获用户选择的"共享"方法的结果.

这是我到目前为止的代码片段.我的问题是如何设置avc.completionWithItemsHandler?我确信它很简单,但我没有看到它.

var activityItems = NSMutableArray()
activityItems.addObject("Email or text for 'share' goes here")

var avc = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
avc.setValue("Subject for Email", forKey: "Subject")

avc.completionWithItemsHandler = //Here is where I dont know what to do.

self.navigationController?.presentViewController(avc, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

ios uiactivityviewcontroller swift

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

在Facebook Messenger中的UIActivityViewController中发送图像+网址

使用简单的UIActivityViewController

-(void)share{

    NSString *textToShare = _mytext;
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
    UIImage *imageToShare = _myimage;
    NSArray *activityItems = @[textToShare, url,  imageToShare];
    UIActivityViewController *activityVC =
    [[UIActivityViewController alloc] initWithActivityItems:activityItems
                                      applicationActivities:nil];

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

我想在适当的时候分享文字,网址和图片.

因此,如果用户选择邮件,则会显示所有内容.与其他应用程序等(pinterest,facebook,twitter)

在Facebook Messenger上 - 如果共享了网址和图像,则共享屏幕崩溃.这是一个已知问题(无法使用网址发送图片)?

facebook ios uiactivityviewcontroller facebook-messenger

22
推荐指数
1
解决办法
4070
查看次数

尝试将图像保存到照片库时,iOS 10应用程序崩溃

我正在尝试将图像保存到Swift 3中的照片库(我正在使用Xcode 8).

ViewController代码:

func shareImage(image: UIImage) {
    let items = [image]

    var activityVC: UIActivityViewController = UIActivityViewController(activityItems: items, applicationActivities: nil)
    let excludeActivities: [UIActivityType] = [UIActivityType.airDrop,
                                               UIActivityType.assignToContact,
                                               UIActivityType.addToReadingList,
                                               UIActivityType.copyToPasteboard]

    activityVC.excludedActivityTypes = excludeActivities

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

当我运行应用程序,然后单击按钮获取屏幕截图(将其转换为图像,......,这一切都完美无缺)时,应用程序要求访问照片库的权限,我点击"确定"按钮,然后应用程序崩溃.图像未保存在照片库中.

我从Xcode获得的唯一线索如下:

2016-09-28 11:24:27.216043 Ajax Kids[4143:1545362] [error] error: -addPersistentStoreWithType:SQLite configuration:(null) URL:file:///var/mobile/Media/PhotoData/Photos.sqlite?readonly_shm=1 options:{
NSPersistentStoreFileProtectionKey = NSFileProtectionCompleteUntilFirstUserAuthentication;
NSReadOnlyPersistentStoreOption = 1;
NSSQLitePersistWALOption = 1;
NSSQLitePragmasOption =     {
    "journal_mode" = WAL;
};
} ... returned error Error Domain=NSCocoaErrorDomain Code=256 "The file couldn’t be opened." UserInfo={reason=Failed to access …
Run Code Online (Sandbox Code Playgroud)

save-image uiactivityviewcontroller swift ios10 xcode8

19
推荐指数
2
解决办法
6718
查看次数

iOS13分享表:分享UIImage时如何设置预览缩略图

iOS13 上的新共享表在其左上角显示了共享项目的预览/缩略图。

当使用 UIActivityViewController 共享 UIImage 时,我希望共享图像的预览/缩略图显示在那里(例如共享附加到内置邮件应用程序的图像时),但共享表显示的是我的应用程序图标。

需要什么代码/设置才能在共享表中显示正在导出的图像的缩略图?

我已经设置了 UIActivityViewController 如下:

let image = UIImage(named: "test")!
let activityVC = UIActivityViewController(activityItems: [image], applicationActivities: nil)                          
activityVC.popoverPresentationController?.sourceView = self.view                            
self.present(activityVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)

ios uiactivityviewcontroller ios13

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

UIActivityViewController不会在iOS 7上显示FB和Twitter

我正在尝试使用UIActivityViewController共享一些项目.在iOS 6上它工作正常.但是当我在iOS 7上测试时,只显示邮件图标.我怀疑我的SDK太旧了,我下载了最新的SDK,但它的行为仍然相同.我在模拟器和安装了facebook的设备上进行了测试,没有运气.

现在我的想法已经用完了我做错了什么.

这是我的代码

- (void)shareButtonWasTapped:(BMPopUpMenuView *)popUpMenu {

NSString *shareText;

if (_correctPatternFound) {
    shareText = @"Yey, I solved a puzzle!";
}
else {
    shareText = @"I am solving a photzle...";
}

NSURL *shareURL = [NSURL URLWithString:@"http://somewebsite.com"];

NSArray *items   = [NSArray arrayWithObjects:
                    shareText,
                    _shareImage,
                    shareURL, nil];


UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:items applicationActivities:nil];
[activityViewController setValue:shareText forKey:@"subject"];

activityViewController.excludedActivityTypes =   @[UIActivityTypeCopyToPasteboard,
                                                   UIActivityTypePostToWeibo,
                                                   UIActivityTypeSaveToCameraRoll,
                                                   UIActivityTypeCopyToPasteboard,
                                                   UIActivityTypeMessage,
                                                   UIActivityTypeAssignToContact,
                                                   UIActivityTypePrint];

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

twitter facebook objective-c ios uiactivityviewcontroller

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

如何使用UIActivityItemProvider发送带有UIActivityViewController附件的电子邮件?

我正在尝试使用UIActivityItemProvider通过电子邮件附件从我的应用程序内共享文件.我还需要填充电子邮件的主题行,并指定附件的名称与设备上存储的文件名称不同.

这是我正在使用的代码.问题是电子邮件中缺少附件.

@interface ItemProvider:UIActivityItemProvider
@property (nonatomic, strong) NSURL *filepath;
@property (nonatomic, strong) NSString *emailBody;
@property (nonatomic, strong) NSString *emailSubject;
@end

@implementation ItemProvider

- (id)initWithPlaceholderItem:(id)placeholderItem
{
    //Initializes and returns a provider object with the specified placeholder data
    return [super initWithPlaceholderItem:placeholderItem];
}

- (id)item
{
    //Generates and returns the actual data object
    return [NSDictionary dictionary];
}

// The following are two methods in the UIActivityItemSource Protocol
// (UIActivityItemProvider conforms to this protocol) - both methods required
#pragma mark UIActivityItemSource

//- Returns the …
Run Code Online (Sandbox Code Playgroud)

email-attachments ios uiactivityviewcontroller

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

UIActivityItemSource Protocole设置复杂对象

我正在使用iOS 6的新方式来分享信息:UIActivityViewController.要根据媒体(Facebook,Twitter或邮件)选择共享数据,我的视图控制器实现UIActivityItemSource协议如下:

- (IBAction)onShareButton:(UIButton *)sender
{

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

    activityViewController.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeAssignToContact, UIActivityTypeCopyToPasteboard, UIActivityTypeMessage, UIActivityTypePostToWeibo, UIActivityTypePrint, UIActivityTypeSaveToCameraRoll];
    [self presentViewController:activityViewController animated:YES completion:^{}];
}

#pragma mark - UIActivityItemSource Protocol

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {
    if ([activityType isEqualToString:UIActivityTypePostToFacebook]) {
        NSArray *items = @[@"message facebook", [NSURL URLWithString:@"http://www.myUrlFacebook.com"]];
        return items;
    } else if ([activityType isEqualToString:UIActivityTypePostToTwitter]) {
        NSArray *items = @[@"message twitter", [NSURL     URLWithString:@"http://www.myUrlTwitter.com"]];
        return items;
    } else if ([activityType isEqualToString:UIActivityTypeMail]) {
        NSArray *items = @[@"message …
Run Code Online (Sandbox Code Playgroud)

objective-c ios6 uiactivityviewcontroller

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

iOS 7中UIActivityViewControllers的模态状态栏和导航栏文本颜色

当我使用a时UIActivityViewController,在用户选择活动(例如Mail或Message)后,我无法更改状态栏的文本颜色,也无法更改"取消"和"发送"导航栏按钮的文本/色调颜色.对于条形按钮,在AppDelegate我尝试过使用:

    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)

没有任何反应.但是我可以用这个设置导航栏标题:

    [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor], UITextAttributeTextColor, nil]];
Run Code Online (Sandbox Code Playgroud)

我设置UIViewControllerBasedStatusBarAppearanceNOInfo.plist.并把线:

    [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)

AppDelegate,并没有运气改变状态栏颜色.有任何想法吗?

textcolor uinavigationbar tintcolor uiactivityviewcontroller ios7

17
推荐指数
2
解决办法
7685
查看次数

共享到Gmail应用程序时,UIActivityViewController无法设置主题

我通过共享来自其他应用程序的内容看到,当使用共享表共享到Gmail邮件应用程序时,可以设置不同的主题和正文.我已经实现了它,它在本机邮件应用程序上工作正常但不适用于Gmail.

进入Yelp并分享业务然后从共享表中选择gmail,我发现主题和正文是不同的.主题包含业务的地址,而正文包含地址+ Yelp上的业务链接.

我试图在本机邮件应用程序上成功复制此逻辑但不在Gmail应用程序中复制.

我尝试过以下方法:

实现UIActivityItemSource方法

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

- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController {
    return @"";
}

- (id)activityViewController:(UIActivityViewController *)activityViewController itemForActivityType:(NSString *)activityType {   
    return @"body";
}

- (NSString *)activityViewController:(UIActivityViewController *)activityViewController subjectForActivityType:(NSString *)activityType {
    return @"subject";
}
Run Code Online (Sandbox Code Playgroud)

结果

Apple Mail主题设置为"主题",正文设置为"正文"

Gmail主题设置为"正文",正文设置为"正文"

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

共享到Gmail应用时从不调用.

然后我尝试更多的黑客方式

UIActivityViewController *activityViewController = [[UIActivityViewController alloc] initWithActivityItems:@[@"body"] applicationActivities:nil];
[activityViewController setValue:@"subject" forKey:@"subject"];
Run Code Online (Sandbox Code Playgroud)

结果

Apple Mail主题设置为"主题",正文设置为"正文"

Gmail主题设置为"正文",正文设置为"正文"

任何让Gmail表现得像Apple Mail的方式?

我再次看到,Yelp和Safari等其他应用程序通过共享表从Gmail应用程序中获得了正确的行为.任何建议将不胜感激,谢谢.

ios uiactivityviewcontroller ios9

17
推荐指数
1
解决办法
2011
查看次数