我正在使用UIActivityViewController与我的iphone应用程序共享图片和文本.
我使用本教程自定义不同服务的文本:
https://www.albertopasca.it/whiletrue/objective-c-custom-uiactivityviewcontroller-icons-and-text/
每件事都很完美,但我需要html来格式化邮件.
我没有找到任何方法用html格式化代码,我有html标签...
有没有办法通过带有html格式的UIActivityViewController发送邮件?我不想要纯文本
我正在编写一个拥有本地保存视频(.mov)的iOS应用程序.我正试图通过UIActivityViewController附加视频.它适用于电子邮件.视频已成功附加和发送.保存到相机胶卷时也可以使用.
附加到Messages时它不起作用.仅显示文本.Twitter和Facebook甚至都没有出现.当我删除视频附件时,Twitter和Facebook终于开始显示.我真的不太关心消息,但有人能告诉我Facebook和Twitter没有出现的原因吗?
继承我的代码:
- (IBAction) shareVideo {
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *URL = [documentsDirectory stringByAppendingPathComponent:demoName];
NSString* someText = demoName;
NSURL *urlToShare = [NSURL fileURLWithPath:URL isDirectory:NO];
NSArray* dataToShare = @[someText, urlToShare];
UIActivityViewController* activityViewController =
[[UIActivityViewController alloc] initWithActivityItems:dataToShare
applicationActivities:nil];
activityViewController.excludedActivityTypes = @[UIActivityTypePrint,UIActivityTypeCopyToPasteboard,UIActivityTypeAssignToContact];
activityViewController.completionHandler = ^(NSString *activityType, BOOL completed) {
//if (completed) {
[self dismissViewControllerAnimated:YES completion:nil];
//}
};
[self presentViewController:activityViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud) 我只想添加一个明显的按钮"在Safari中打开"如何以简单的方式完成它.
#pragma mark - Share the link
- (IBAction)activityButtonPressed:(id)sender {
NSString *textToShare = @"I just shared this from my App";
// UIImage *imageToShare = [UIImage imageNamed:@"Image.png"];
NSURL *urlToShare = [NSURL URLWithString:@"http://www.google.com"];
NSArray *activityItems = [NSArray arrayWithObjects:textToShare, urlToShare,nil];
UIActivityViewController *activityVC = [[UIActivityViewController alloc]initWithActivityItems:activityItems applicationActivities:Nil];
//This is an array of excluded activities to appear on the UIActivityViewController
//activityVC.excludedActivityTypes = @[UIActivityTypeMessage, UIActivityTypeCopyToPasteboard,UIActivityTypeSaveToCameraRoll];
[self presentViewController:activityVC animated:TRUE completion:nil];
}
Run Code Online (Sandbox Code Playgroud) 我正在分享一张图片,还有一个网址和一些文字UIActivityViewController.一切都很好,除了图像文件名总是'Image-1'没有扩展名.在某些情况下,这会导致一个大问题,例如邮件应用程序在没有扩展名的情况下无法打开图像.
图像由应用程序生成,并作为一个存在UIImage.
有没有办法控制文件名并为图像添加正确的扩展名?
我在appDelegate中使用以下代码在我的应用程序中设置我的UINavigationBar和状态栏的外观:
[[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
[[UINavigationBar appearance] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
Run Code Online (Sandbox Code Playgroud)
此代码正确地将所有内容的外观设置为白色,除非阻止第三方模式viewController,例如来自Dropbox API或来自UIActivityViewController的Mail/Message viewController.我已经包含了一些屏幕截图来展示它们的外观.
UIActivityViewController邮件:

UIActivityViewController消息:

Dropbox API:

我试过把它放进去
[[UINavigationBar appearanceWhenContainedIn:[MFMailComposeViewController class], nil] setTitleTextAttributes:@{NSForegroundColorAttributeName: [UIColor whiteColor]}];
Run Code Online (Sandbox Code Playgroud)
以及
[[UINavigationBar appearanceWhenContainedIn:[UIActivityViewController class], nil] setTintColor:[UIColor whiteColor]];
Run Code Online (Sandbox Code Playgroud)
而且没有人在工作.
我正在使用UIActivityViewController,我想显示Facebook选项,即使用户没有在设备设置中定义Facebook帐户.
在我的代码中,当设置中没有Facebook帐户时,Facebook选项未显示.
UIActivityViewController *activityVC = [[UIActivityViewController alloc] initWithActivityItems:itemsToShare applicationActivities:nil];
[self presentViewController:activityVC animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
但是,在Safari或更多应用程序中有Facebook选项,当点击它时 - 会显示一个警告,其中显示"没有facebbok帐户"标题,并显示"转到设置"消息.
有没有办法像这样添加Facebook或者只为苹果应用程序添加这个?

我已经在这里和这里查看了相关的问题,并且我已经实现了建议的答案但无济于事.
我在UIToolbar上有一个UIBarButtonItem,发送操作的连接到btnTBAction_touch:
在ViewController的类头中,我有:
@property (nonatomic, strong) UIActivityViewController *activityViewController;
Run Code Online (Sandbox Code Playgroud)
类实现中的相关方法:
- (IBAction)btnTBAction_touch:(id)sender {
NSString *string = @"Some string";
NSURL *url = [[NSURL alloc] initWithString:@"http://www.google.com"];
UIImage *image = [UIImage imageNamed:@"default.png"];
self.activityViewController = [[UIActivityViewController alloc]
initWithActivityItems:@[string, url, image] applicationActivities:nil];
if ([self.activityViewController respondsToSelector:@selector(popoverPresentationController)])
{
UIPopoverPresentationController *presentationController = [self.activityViewController
popoverPresentationController];
presentationController.sourceView = sender;
}
[self presentViewController:self.activityViewController animated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
当我触摸调用上述方法的按钮时,在物理设备上以调试模式运行时,我在调试控制台中获得以下内容
2014-09-19 09:43:31.635 TestApp[1878:237873] LaunchServices: invalidationHandler called
2014-09-19 09:43:31.644 TestApp[1878:237814] LaunchServices: invalidationHandler called
Run Code Online (Sandbox Code Playgroud)
但是,与相关问题不同,我的应用程序在发生这种情况时不会崩溃,应用程序继续正常运行并且UIActivityViewController正确显示...但我宁愿修复错误而不是说它已经足够好了.
另外,我尝试使用以下方法对上述方法进行了一些排列:
presentationController.sourceView = self.view;
presentationController.sourceRect = self.view.frame;
Run Code Online (Sandbox Code Playgroud)
这些都没有帮助解决问题. …
我试图从我的UIActivityType中排除所有服务,除了电子邮件和短信.我使用以下声明:
activityController.excludedActivityTypes = @[UIActivityTypeAddToReadingList,UIActivityTypeAirDrop,UIActivityTypeAssignToContact,UIActivityTypeCopyToPasteboard,
UIActivityTypePostToFacebook,UIActivityTypePostToFlickr,UIActivityTypePostToTencentWeibo,UIActivityTypePostToTwitter,
UIActivityTypePostToVimeo,UIActivityTypePostToWeibo,UIActivityTypePrint,UIActivityTypeSaveToCameraRoll];
Run Code Online (Sandbox Code Playgroud)
在iOS 9下,我注意到还有一些名为"Notes"的东西也出现了.我查看了Apple文档以及自动完成功能,但找不到引用Notes的条目.我该如何排除它?
当我Whatsapp使用UIActivityViewController我正在收到警报时,我正在向app 分享图像数据:
此项目无法共享.请选择其他项目.
我能够将图像数据共享给所有其他应用程序,除了Whatsapp,是否有人遇到过这样的问题?或者任何人都可以帮我解决这个问题.
如果有人想检查代码,那么如果需要,评论将分享.
我使用以下代码分享一些内容
var textToShare = "Test"
let activityVC = UIActivityViewController(activityItems: [textToShare], applicationActivities: nil)
activityVC.excludedActivityTypes = [UIActivityTypePrint, UIActivityTypeCopyToPasteboard, UIActivityTypeAssignToContact]
presentViewController(activityVC, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
但是,当我按下取消按钮或成功共享内容时,应用程序显示一个空白屏幕.
如何解决这个问题?
更新:
当我为共享目标选择邮件或短信应用程序时,就会出现空白屏幕,对于电报,Twitter和Facebook,它是完美的.
我评论了生命周期方法中的所有代码,仍然是同样的问题.
override func viewDidAppear(animated: Bool)
{
//setControlsAreHidden(true)
}
override func viewWillAppear(animated: Bool)
{
//if dataAddedToView
//{
// activityIndicator?.removeFromSuperview()
//}
}
override func viewWillDisappear(animated: Bool)
{
//setControlsAreHidden(false)
}
Run Code Online (Sandbox Code Playgroud) ios ×8
iphone ×3
objective-c ×3
swift ×2
attachment ×1
facebook ×1
ios6 ×1
ios9 ×1
ipad ×1
uiappearance ×1
uiimage ×1
uikit ×1
video ×1
whatsapp ×1