在iOS8中通过短信发送贴纸

时间:2014-10-16 07:12:37

标签: ios keyboard ios8 custom-keyboard

我们希望通过一个能够发送贴纸的键盘来构建iOS8中的自定义键盘框架。

与此非常相似: http://stickerboard.me/

我们的团队中有一位应用程序开发人员(部分正确)说在SMS和类似内容中使用的键盘需要一个包含unicode字符的键盘,但是我们得到的图像(类似于贴纸板中的图像) .me)不是标准的unicode字符。

我的问题是:

  1. 是否可以在iOS8中使用自定义键盘,允许将贴纸添加到系统范围的消息(本机短信,脸书,应用程序,应用程序,无处不在)?
  2. 如果不可能,是否可以将不是标准unicode字符的图像以某种方式转换为unicode并在发件人和收件人电话上正确显示?
  3. 感谢。

3 个答案:

答案 0 :(得分:0)

否(2014年11月)。

"以未归因的NSString对象的形式,在当前文本输入对象的文本插入点处提供文本。"

https://developer.apple.com/library/ios/documentation/General/Conceptual/ExtensibilityPG/Keyboard.html

答案 1 :(得分:0)

可能(使用普通的普通图像)但不是良好的用户体验(2014年11月)。

以下是一些快速提示,帮助您顺利上路。

  • 将RequestsOpenAccess添加到plist并将其设置为YES
  • 用户需要允许完全访问
  • 将图像设置为UIPasteBoard
  • 用户需要粘贴图片

答案 2 :(得分:0)

我不确定您是否可以通过短信执行此操作,因为其他部分取决于收到消息,但您绝对可以使用自己的应用来聊天对话。

我一直在iOS项目中工作,以证明在聊天对话中使用表情符号和贴纸的概念。

您可以在我的GitHub repository中查看并根据需要做出贡献(欢迎查看和改进)。

我做的是,使用NSTextAttachment使用UITextView对象类型在NSAttributedString内附加图片。

要在UITextView中显示图像作为表情符号:

// initialize object with the content of textView
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithAttributedString:textview.attributedText];

// initialize selected image to be used as emoji
NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:@"MicheyMouse"];
textAttachment.image = [UIImage imageWithCGImage:textAttachment.image.CGImage scale:25 orientation:UIImageOrientationUp];

NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];
[attributeString appendAttributedString:attrStringWithImage];

// blank space after the image
NSAttributedString *blank = [[NSAttributedString alloc] initWithString:@" "];
[attributeString appendAttributedString:blank];

textview.attributedText = attributeString;

如果您想将图片用作贴纸,请按以下步骤操作:

NSTextAttachment *textAttachment = [[NSTextAttachment alloc] init];
textAttachment.image = [UIImage imageNamed:sticker];
textAttachment.image = [UIImage imageWithCGImage:textAttachment.image.CGImage scale:12 orientation:UIImageOrientationUp]; // --> change de scale, to change image size (or create the image in size that you want)

NSAttributedString *attrStringWithImage = [NSAttributedString attributedStringWithAttachment:textAttachment];

cell.textLabel.attributedText = attrStringWithImage

在这个例子中,我将图像作为贴纸直接附加在单元格中(您可以将此单元格作为聊天气球)。

换句话说,在第一个代码行中,我基本上是在UITextView中显示图像,而在第二个代码行中,我将图像直接放在聊天行中。

我必须自己做贴纸/表情符号键盘,我还做了一些工作来处理表情符号键盘和打字键盘之间的切换。

这是项目示例的GitHub存储库:https://github.com/cairano/CIStickerFacilities