简体   繁体   中英

Sending Stickers via SMS in iOS8

We're looking to build on the custom keyboard framework in iOS8 by having a keyboard which is capable of sending stickers.

Very very similar to this: http://stickerboard.me/

We have an app developer on our team who (is part correct) in saying that the keyboard for use inside SMS and similar needs to have a keyboard containing unicode characters, however the images that we have got (similar to those in stickerboard.me) are not standard unicode characters.

My questions are:

  1. Is it possible to have a custom keyboard in iOS8 which allows stickers to be added to system-wide messages (native SMS, facebook, what's app, everywhere)?
  2. If it's not possible, is it possible to have images that are not standard unicode characters converted to unicode somehow and displayed correctly on both the sender and recipients phone?

Thanks.

No (November 2014).

"provide text, in the form of an unattributed NSString object, at the text insertion point of the current text input object."

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

It is possible (with plain, normal images) but not a good user experience (November 2014).

Here are some quick hints to get you on the way.

  • Add RequestsOpenAccess to your plist and set it to YES
  • User needs to allow full access
  • Set an image to the UIPasteBoard
  • User needs to paste the image

I'm not sure you can do this via SMS because depends of the other part receive the message, but you absolutely can make using your own app to chat conversations.

I've been working in an iOS project to prove this concept of using emojis and stickers in chat conversations.

You can check it out in my GitHub repository and contribute if you want (review and improvement are welcome).

What I done was, use the NSTextAttachment to attach an image within an UITextView , using the NSAttributedString object type.

To show a image as an emoji, within in an 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;

And if you wanna use the image as a sticker, follow this lines:

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

In this example, I attached the image as a sticker directly in a cell (you can do this cell as a chat ballon).

In other words, in the first code lines, I basically showed the image in an UITextView, and in the second I put the image directly in chat lines.

I had to do my own sticker/emoji keyboard and I also made some work to handle the switching between emoji keyboard and typing keyboard.

This is the GitHub repository for the project example: https://github.com/cairano/CIStickerFacilities

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM