标签: mfmessagecomposeviewcontroller

MFMessageComposeViewController的收件人字段未在iOS 7中显示

以下代码在iOS 5/6中运行良好.在iOS 7中,它看起来像这样(红色椭圆形用于强调).

在此输入图像描述

码:

if ([MFMessageComposeViewController canSendText]) {
    self.messageComposer = [MFMessageComposeViewController new];
    self.messageComposer.recipients = @[number];
    self.messageComposer.messageComposeDelegate = self;
    [self presentViewController:self.messageComposer
                       animated:YES
                     completion:nil];
}
Run Code Online (Sandbox Code Playgroud)

问题:这是简单的代码.是否有一些其他外部属性,可能是呈现视图控制器,正在影响这个?任何人都有修复或解决方法?

谢谢.

mfmessagecomposeviewcontroller ios7

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

iOS 10无法再在MFMessageComposeViewController上设置barcolor和色调

下面的代码适用于iOS 9.x或更低版本,由于某种原因,如果iOS 10不起作用

 if([MFMessageComposeViewController canSendText])
             {
                 controller.body = message;
                 NSString *tel = pContact.tlc;
                 controller.recipients = pContact.tlc?@[tel]:nil;
                 controller.messageComposeDelegate = self;
                 controller.navigationBar.tintColor = [UIColor whiteColor];
                 controller.navigationBar.barTintColor = [UIColor blueColor];
                 [self presentViewController:controller animated:YES completion:nil];
             }
Run Code Online (Sandbox Code Playgroud)

它是破碎还是做了一些改变.不知道这里遗漏了什么.我在黑暗中(漆黑)

编辑:我试图在一个新的空单视图项目上使用一些测试代码,我遇到了同样的问题.

@IBAction func SMS(_ sender: AnyObject) {
        let composeVC = MFMessageComposeViewController()
        composeVC.messageComposeDelegate = self

        // Configure the fields of the interface.
        composeVC.recipients = ["5555555555"]
        composeVC.body = "Hello from California!"
        composeVC.navigationBar.tintColor = UIColor.green
        composeVC.navigationBar.barTintColor = UIColor.purple
        // Present the view controller modally.
        self.present(composeVC, animated: true, completion: nil)
    } …
Run Code Online (Sandbox Code Playgroud)

colors uinavigationbar mfmessagecomposeviewcontroller

21
推荐指数
1
解决办法
3290
查看次数

MFMessageComposeViewController iOS7 addAttachmentData:typeIdentifier:filename:not working

我想在iOS7上将图像附加到MMS上.我写了以下代码:

    MFMessageComposeViewController *messageController = [[MFMessageComposeViewController alloc] init];
    messageController.messageComposeDelegate = self;

    NSData *imgData = [NSData dataWithContentsOfFile:@"blablabla"];
    BOOL didAttachImage = [messageController addAttachmentData:imgData typeIdentifier:@"public.data" filename:@"image"];

    if (didAttachImage)
    {
        // Present message view controller on screen
        [self presentViewController:messageController animated:YES completion:nil];
    }
    else
    {
        UIAlertView *warningAlert = [[UIAlertView alloc] initWithTitle:@"Error"
                                                               message:@"Failed to attach image"
                                                              delegate:nil
                                                     cancelButtonTitle:@"OK"
                                                     otherButtonTitles:nil];
        [warningAlert show];
        return;
    }
Run Code Online (Sandbox Code Playgroud)

问题是,当显示SMS屏幕时,它无法识别图像,也无法发送.我看到这样的事情:

消息屏幕

我相信这与我发送的imgData或者typeIdentifier有关.

注意:我尝试了几乎所有可能的typeIdentifiers:@"public.data",@"public.image",@"public.item",...等没有工作.

有人可以帮帮我吗?你使用的typeIdentifier是什么?我在iPhone 5,iOS 7.0.2上测试.

谢谢.


解:

正如Greg指示的那样,这解决了我的问题:将文件名设置为@"image.png",将typeIdentifier设置为kUTTypePNG.

[messageController addAttachmentData:imgData typeIdentifier:(NSString *)kUTTypePNG filename:@"image.png"];
Run Code Online (Sandbox Code Playgroud)

谢谢格雷格.

mms uti ios mfmessagecomposeviewcontroller ios7

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

iOS 7上的MFMessageComposeViewController慢得多

我有一个发送电子邮件和短信的应用程序.

我遇到的问题是,在iOS 7上加载MFMessageComposeViewController比在之前的iOS上慢得多,随着联系人数量的增加,它变得更糟.

在消息应用程序打开并加载了内容之前,屏幕变黑了几秒钟.

有什么想法吗?

使用相同数量的电子邮件,MFMailComposeViewController比以前更快.

救命!!谢谢.

performance messages ios mfmessagecomposeviewcontroller ios7

10
推荐指数
1
解决办法
2616
查看次数

如何通过iPhone应用程序附加图像和消息?

我想发送带有图像数据的消息.所以我用过MFMessageComposeViewController.但该控制器仅提供SMS服务.所以我使用UIPasteBoard附加的图像数据.但它也不起作用.键入消息时没有创建"粘贴"按钮.附上图像UIPasteBoard显然是成功的.我认为使用MFMessageComposeViewController并不能解决我的问题.我怎样才能实现目标?

iphone mms uiimage ios mfmessagecomposeviewcontroller

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

按下发送按钮后,MFMessageComposeViewController消息消失并无法发送(iOS 7)

我有一个应用程序,用户可以通过将图像附加到MFMessageComposeViewController的实例来选择图像并将其发送给朋友.在MFMCVC视图中按下发送后,事情在某些时候按预期工作 - 带有图像的消息已成功发送给收件人,或者"消息失败"标签显示在本机iMessage客户端中的消息旁边(但在两种情况下,图像在本机客户端中可见.但是,按下发送后的一半时间内会出现一个错误(在运行iOS 7的iPhone 4上).消息 - 附件和所有 - 消失,再也不会被看到.收件人从未收到邮件,也不会出现在iMessage的发件人邮件通道中.

我很确定这是Apple的MFMessageComposeViewController本身的一个错误,因为API很简单,我能够在单独的演示应用程序中可靠地重现错误https://github.com/timcour/mf-message-compose- fail-demo.git.

- (void)displaySMSComposerSheet
{
    MFMessageComposeViewController *picker = [[MFMessageComposeViewController alloc] init];
    picker.messageComposeDelegate = self;

    NSData *data = [_imageDataCache objectForKey:[_imageURLs objectAtIndex:_currentIndex]];
    [picker addAttachmentData:data
               typeIdentifier:(NSString *)kUTTypeGIF
                     filename:@"share.gif"];
    if (![self.recipientTextField.text isEqualToString:@""]) {
        picker.recipients = [NSArray arrayWithObject:self.recipientTextField.text];
    }
    picker.body = [NSString stringWithFormat:@"image: %i", _currentIndex];

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

在很多成功和失败的情况下观察用户界面之后,在强调操作系统加剧的组合视图中似乎是一种竞争条件 - 不确定它是内存还是CPU压力(或两者兼而有之?).在任何情况下,当发送成功时,在选择联系人之后立即用其相应会话的内容填充消息信道的内容,明显地将新消息附加到结尾.但是当错误表面和消息消失时,对话的先前消息通常仅在按下发送按钮后才出现,而不显示新消息.如果这确实是竞争条件,那么一个猜测是它是作曲家VC的消息提取机制和-viewDidLoad.

有没有人在此之前遇到过这种情况并且/或者知道某种解决方法?我将向苹果提交一份错误报告,但我想找到一个不包括等待Apple修复的解决方案.

笔记:

  • iPhone 4和iPhone 5s上的消息最常消失,但iPod touch第5代(所有运行的iOS 7.0.2)很少消失.

  • 使用iPhone 4上的https://github.com/timcour/mf-message-compose-fail-demo.git应用程序,通过尽可能快地将20张图像发送给同一个人,可以最轻松地复制该错误.

  • 有一个单独的(但可能是相关的)错误.在MFMCVC视图中选择输入联系人的电子邮件地址后,vc将确定是否应发送iMessage或MMS.在测试期间的某些时间,它做出了错误的决定,并尝试将消息作为MMS发送,尽管收件人iMessage帐户没有与之关联的电话号码.这导致向发件人发送一条消息,就好像它已成功发送,但实际上无法到达目的地.

  • 这似乎并不是许多用户向Apple抱怨的"iMessage无法发送消息"的错误.

更新:

以下是消息消失且无法发送时记录的堆栈跟踪: …

objective-c ios imessage mfmessagecomposeviewcontroller

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

在IMessage中正确显示视频

目前,我正在开发一个应用程序,我必须通过IMessage发送照片/视频.照片

发送代码是正常的工作,但当我通过IMessage发送视频,我只是得到

在作曲家中制作的图标没有视频显示如下:

在此输入图像描述

我正在使用此代码在IMessage中显示视频以进行发送:

if (ver_float < 6.0)
        {
            UIPasteboard *pasteboard;
            pasteboard = [UIPasteboard generalPasteboard];
            NSString *filePath =pathToVideo;
            NSData *datavideo = [NSData dataWithContentsOfFile:filePath ];
            [pasteboard setData:datavideo forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];
        }
        else
        {
            UIPasteboard *pasteboard = [UIPasteboard generalPasteboard];
            NSString *filePath =pathToVideo;
            NSData *videoData = [NSData dataWithContentsOfFile:filePath];
            [pasteboard setData:videoData forPasteboardType:[UIPasteboardTypeListImage objectAtIndex:0]];

        }
    NSURL *urlstr = [NSURL URLWithString:@"sms:"];
    [[UIApplication sharedApplication] openURL:urlstr];
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?Thanx提前.

iphone objective-c imessage mfmessagecomposeviewcontroller ios6

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

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
查看次数

使用iPhone 8和iPhone 8上的MFMessageComposeViewController以及运行iOS11的问题

使用iOS 11的iPhone 8和iPhone 8 plus无法从iOS应用程序内部打开MFMessageComposeViewController.他们有时打开黑屏.

是否有其他人在运行iOS 11的iPhone 8上遇到此问题并找到了解决方案?请帮忙.

我设法仅在运行iOS 11的iPhone 8上重现此问题.

提前致谢!

iphone ios mfmessagecomposeviewcontroller

5
推荐指数
1
解决办法
340
查看次数

如何在 MessageUI (Swift 4) 中启用按钮

我正在尝试为我的应用启用 MessageUI 中的相机和应用按钮。我在 Apple 的文档中没有找到关于如何执行此操作的任何地方。有任何想法吗?谢谢!

更新:我disableUserAttachments()在 Apple 的文档中找到了一个函数,这与我正在寻找的相反。Apple 特别表示,此功能会禁用消息视图中的相机/附件按钮。我的项目中没有此代码,它仍然处于禁用状态。我还没有找到像 enableUserAttachments 这样的东西,这是我认为我需要的。任何想法表示赞赏。 截屏

xcode messageui imessage mfmessagecomposeviewcontroller swift

5
推荐指数
1
解决办法
329
查看次数