2011-08-25 16 views
5

Estoy trabajando en la creación de keyboardas personalizados presentados por EMOJI con tener caracteres e iconos pictóricos como emoticones y otros símbolos utilizados día a día. Hasta ahora llegué a saber que estos símbolos tienen estándares Unicode que se agregan al Consorcio Unicode y aprobados por Apple.Crear un teclado personalizado y configurarlo en su iPhone

http://itunes.apple.com/us/app/emoji-free!/id332509635?mt=8

Necesito ayuda en relación con el proceso se registran estos símbolos. ¿Es posible hacer que el teclado sea compatible con el ingreso de texto en todas las aplicaciones instaladas en el iPhone si es así? ¿Cómo proceder?

NOTA: Son estos teclados aprobados por Apple o aplicaciones con ellos es rechazado .. ... Cualquier idea

Cualquier ayuda sería muy apreciada.

Gracias Vikas Ojha

Respuesta

11

El teclado Emoji es construir-en en IOS.

Lo único que están haciendo todas las aplicaciones "Emoji" existentes en la AppStore (como "emoji-free!") Es que activan este teclado en las Preferencias del Sistema, porque está oculto de forma predeterminada. Estas aplicaciones no "crean e instalan" el teclado en sí mismas, ni instalan los iconos y glifos (símbolos), los emoticones ya están incorporados en iOS también.

Por ejemplo, si un usuario de iPhone recibe un mensaje de texto (SMS) que contiene algunos emoticones, verá el emoticono, incluso si no tiene instalada ninguna aplicación habilitadora de Emoji como "¡libre de emoji!" .


Para ser más precisos, los iconos emoji que Apple incrustados en las fuentes de iPhone no son aprobados por el estándar Unicode. Están ubicados en el plano "privado" de Unicode: su punto de código está en un rango que está especialmente reservado para usos privados, como el que hace Apple al usarlo para estos emojis, pero por definición, ya que es una región privada, no hay un nombre específico y el uso normalizado de estas aplicaciones punto de código cruzando (al contrario de los puntos de código como U + 0041 que se dedica al glifo que representa la letra latina "a")

+0

Algunos Además: desde mi respuesta, Unicode versión 6.0 ha sido liberado, los puntos de código de glifos emoji ha sido estandarizados en un plano dedicado, y Apple ha adoptado esta norma en iOS5. Entonces, incluso si en iOS4 los caracteres emoji estaban en un plano "privado" de Unicode, iOS5 usa ahora los puntos de código oficiales (que no están en un plano privado) para los glifos de emoji. (Los puntos de código previos del avión privado todavía muestran glifos de emoji, por razones de compatibilidad, pero los nuevos puntos de código se usan cuando inserta un carácter emoji) – AliSoftware

+0

¿Por qué el teclado está oculto de forma predeterminada? y hay otros teclados ocultos por defecto también? –

+0

Porque usaba puntos de código Unicode privados en iOS4, por lo que solo era compatible con otros iPhones (enviar un mensaje que contenga un emoji con estos puntos de código privados a otro tipo de teléfono oa una computadora de escritorio daría como resultado un carácter desconocido). Pero desde entonces, se ha lanzado el estándar Unicode 6.0 e incluye un plano emoji con puntos de código dedicados para los glifos de emoji, y iOS5 e iOS6 ahora los usan, que son compatibles con otros dispositivos que respetan el estándar Unicode 6.0. y ya no está oculto – AliSoftware

-1
+0

Hola Narayanan Ramamoorthy, el ejemplo que proporcionaste es de gran ayuda, pero ¿cómo puedo configurarlo para teclado? tipos o para otras aplicaciones, también será el texto (imágenes/símbolo) escrito en un iphone legible en otro exactamente en la misma forma –

+0

sí hola vikas ojha –

+0

acabo de enviar el enlace para seguir. Por favor inténtelo con esa primera –

0

Como una adición a mi respuesta anterior, puede tener su teclado personalizado en su propia aplicación, de todos modos: puede definir cualquier UIView para ser el "inputView" de un UITextField o UITextView (ver el inputView @property en la documentatio norte).

Por ejemplo, podría escribir self.myTextField.inputView = myPicker; donde myPicker es un UIDatePickerView creado anteriormente (por código o en su archivo XIB) y cuando el usuario toca el campo de texto para darle el foco (= hacerlo el primer Respondedor), en lugar de el teclado estándar, iOS mostrará el UIDatePicker.

Pero, por supuesto, esto está limitado a su aplicación, y para textFields & textViews para las que lo configura. Es decir, no se presenta como un "teclado de entrada alternativo" al que puede cambiar utilizando el "icono del globo" en el teclado, como para el teclado Emoji o cuando cambia de QWERTY a AZERTY (o cualquier otro teclado que haya activado en la configuración de tu iPhone). Entonces este no es realmente el mismo uso que el caso "Emoji" que describes.

+0

Ok, si esto está limitado a mis textview/textfields solo en mi aplicación, entonces el texto incluye emoticón. Así, este texto estará visible en el otro iPhone de la misma manera que se muestra mientras se envía desde mi dispositivo ...? –

+0

Sí, porque todos los dispositivos iOS (iPhone, iPad, iPod) incluyen las fuentes que tienen los caracteres necesarios en su tabla Unicode para mostrar emojis. Por lo tanto, cualquier iPhone puede mostrar estos puntos de código Unicode como emojis ya que todos incluyen el glifo correspondiente. Para cualquier otro dispositivo, ya que no tienen esos glifos emoji para estos puntos de código Unicode (pero tal vez nada, tal vez algunos glifos privados para un uso diferente) no podrán mostrarlo – AliSoftware

+0

En realidad, incluso si es más especial glifos en la tabla Unicode de cada fuente incrustada en iOS, el efecto es el mismo que si tuviera una fuente específica (piense en fuentes como Webdings, Wingdings o Dingbats): siempre que el receptor tenga la fuente, podrá para mostrar los mismos glifos y estos serán renderizados de la misma manera. Pero si no tiene la fuente, se procesará de manera diferente o al menos no se espera. Esta es una idea bastante similar con el rango de punto de código privado Unicode. – AliSoftware

2

Esto es lo que hice para hacer un teclado de emoticones. Primero creé una vista personalizada con dos botones y establecer self.textView.inputAccessoryView = self.accessoryView luego tuvo los dos botones de hacer lo siguiente:

- (IBAction)emoticons:(id)sender 
{ 
    [self.textView resignFirstResponder]; 
    self.textView.inputView = self.emotiview.view; 
    [self.textView becomeFirstResponder]; 
} 

- (IBAction)text:(id)sender 
{ 
    [self.textView resignFirstResponder]; 
    self.textView.inputView = nil; // sets it back to it's initial form 
    [self.textView becomeFirstResponder]; 
} 

Debajo es un fragmento del código para crear todos los botones y ponerlos en una vista, que está en una vista de desplazamiento.

for(int i = 0; i < self.emoticonsCharacters.count; i++) 
    { 
     UIButton* button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 
     button.frame = CGRectMake((i % 5)*50, 10 + 50*(i/5), 45, 45); 
     [button setTitle: [self.emoticonsCharacters objectAtIndex:i] forState:UIControlStateNormal]; 
     [button addTarget:self action:@selector(enterEmoticon:) forControlEvents:UIControlEventTouchDown]; 
     [self.emoticonsView1 addSubview:button]; 
    } 

Esta es una matriz de todos los personajes de emoticones.

-(NSArray*) emoticonsCharacters 
{ 
    if(!emoticonsCharacters) 
    { 
     // unicode taken from http://www.easyapns.com/iphone-emoji-alerts 
     emoticonsCharacters = [[NSArray alloc] initWithObjects:@"\ue415",@"\ue056",@"\ue057", @"\ue414",@"\ue405", @"\ue418", @"\ue417", @"\ue40d", @"\ue40a", @"\ue404", @"\ue105", @"\ue409", @"\ue40e", @"\ue402", @"\ue108", @"\ue403", @"\ue058", @"\ue407", @"\ue401", @"\ue40f", @"\ue40b", @"\ue406", @"\ue413", @"\ue411", @"\ue412", @"\ue410", @"\ue107", @"\ue059", @"\ue416", @"\ue408", @"\ue40c", @"\ue11a", @"\ue10c", @"\ue32c", @"\ue32a", @"\ue32d", @"\ue328", @"\ue32b", @"\ue022", @"\ue023", @"\ue327", @"\ue329", @"\ue32e", @"\ue32f", @"\ue335", @"\ue334", @"\ue021", @"\ue337", @"\ue020", @"\ue336", @"\ue13c", @"\ue330", @"\ue331", @"\ue326", @"\ue03e", @"\ue11d", @"\ue05a", @"\ue00e", @"\ue421", @"\ue420", @"\ue00d", @"\ue010", @"\ue011", @"\ue41e", @"\ue012", @"\ue422", @"\ue22e", @"\ue22f", @"\ue231", @"\ue230", @"\ue427", @"\ue41d", @"\ue00f", @"\ue41f", @"\ue14c", @"\ue201", @"\ue115", @"\ue428", @"\ue51f", @"\ue429", @"\ue424", @"\ue423", @"\ue253", @"\ue426", @"\ue111", @"\ue425", @"\ue31e", @"\ue31f", @"\ue31d", @"\ue001", @"\ue002", @"\ue005", @"\ue004", @"\ue51a", @"\ue519", @"\ue518", @"\ue515", @"\ue516", @"\ue517", @"\ue51b", @"\ue152", @"\ue04e", @"\ue51c", @"\ue51e", @"\ue11c", @"\ue536", @"\ue003", @"\ue41c", @"\ue41b", @"\ue419", @"\ue41a", @"\ue04a", @"\ue04b", @"\ue049", @"\ue048", @"\ue04c", @"\ue13d", @"\ue443", @"\ue43e", @"\ue04f", @"\ue052", @"\ue053", @"\ue524", @"\ue52c", @"\ue52a", @"\ue531", @"\ue050", @"\ue527", @"\ue051", @"\ue10b", @"\ue52b", @"\ue52f", @"\ue528", @"\ue01a", @"\ue134", @"\ue530", @"\ue529", @"\ue526", @"\ue52d", @"\ue521", @"\ue523", @"\ue52e", @"\ue055", @"\ue525", @"\ue10a", @"\ue109", @"\ue522", @"\ue019", @"\ue054", @"\ue520", @"\ue306", @"\ue030", @"\ue304", @"\ue110", @"\ue032", @"\ue305", @"\ue303", @"\ue118", @"\ue447", @"\ue119", @"\ue307", @"\ue308", @"\ue444", @"\ue441", @"\ue436", @"\ue437", @"\ue438", @"\ue43a", @"\ue439", @"\ue43b", @"\ue117", @"\ue440", @"\ue442", @"\ue446", @"\ue445", @"\ue11b", @"\ue448", @"\ue033", @"\ue112", @"\ue325", @"\ue312", @"\ue310", @"\ue126", @"\ue127", @"\ue008", @"\ue03d", @"\ue00c", @"\ue12a", @"\ue00a", @"\ue00b", @"\ue009", @"\ue316", @"\ue129", @"\ue141", @"\ue142", @"\ue317", @"\ue128", @"\ue14b", @"\ue211", @"\ue114", @"\ue145", @"\ue144", @"\ue03f", @"\ue313", @"\ue116", @"\ue10f", @"\ue104", @"\ue103", @"\ue101", @"\ue102", @"\ue13f", @"\ue140", @"\ue11f", @"\ue12f", @"\ue031", @"\ue30e", @"\ue311", @"\ue113", @"\ue30f", @"\ue13b", @"\ue42b", @"\ue42a", @"\ue018", @"\ue016", @"\ue015", @"\ue014", @"\ue42c", @"\ue42d", @"\ue017", @"\ue013", @"\ue20e", @"\ue20c", @"\ue20f", @"\ue20d", @"\ue131", @"\ue12b", @"\ue130", @"\ue12d", @"\ue324", @"\ue301", @"\ue148", @"\ue502", @"\ue03c", @"\ue30a", @"\ue042", @"\ue040", @"\ue041", @"\ue12c", @"\ue007", @"\ue31a", @"\ue13e", @"\ue31b", @"\ue006", @"\ue302", @"\ue319", @"\ue321", @"\ue322", @"\ue314", @"\ue503", @"\ue10e", @"\ue318", @"\ue43c", @"\ue11e", @"\ue323", @"\ue31c", @"\ue034", @"\ue035", @"\ue045", @"\ue338", @"\ue047", @"\ue30c", @"\ue044", @"\ue30b", @"\ue043", @"\ue120", @"\ue33b", @"\ue33f", @"\ue341", @"\ue34c", @"\ue344", @"\ue342", @"\ue33d", @"\ue33e", @"\ue340", @"\ue34d", @"\ue339", @"\ue147", @"\ue343", @"\ue33c", @"\ue33a", @"\ue43f", @"\ue34b", @"\ue046", @"\ue345", @"\ue346", @"\ue348", @"\ue347", @"\ue34a", @"\ue349", @"\ue036", @"\ue157", @"\ue038", @"\ue153", @"\ue155", @"\ue14d", @"\ue156", @"\ue501", @"\ue158", @"\ue43d", @"\ue037", @"\ue504", @"\ue44a", @"\ue146", @"\ue50a", @"\ue505", @"\ue506", @"\ue122", @"\ue508", @"\ue509", @"\ue03b", @"\ue04d", @"\ue449", @"\ue44b", @"\ue51d", @"\ue44c", @"\ue124", @"\ue121", @"\ue433", @"\ue202", @"\ue135", @"\ue01c", @"\ue01d", @"\ue10d", @"\ue136", @"\ue42e", @"\ue01b", @"\ue15a", @"\ue159", @"\ue432", @"\ue430", @"\ue431", @"\ue42f", @"\ue01e", @"\ue039", @"\ue435", @"\ue01f", @"\ue125", @"\ue03a", @"\ue14e", @"\ue252", @"\ue137", @"\ue209", @"\ue154", @"\ue133", @"\ue150", @"\ue320", @"\ue123", @"\ue132", @"\ue143", @"\ue50b", @"\ue514", @"\ue513", @"\ue50c", @"\ue50d", @"\ue511", @"\ue50f", @"\ue512", @"\ue510", @"\ue50e", @"\ue21c", @"\ue21d", @"\ue21e", @"\ue21f", @"\ue220", @"\ue221", @"\ue222", @"\ue223", @"\ue224", @"\ue225", @"\ue210", @"\ue232", @"\ue233", @"\ue235", @"\ue234", @"\ue236", @"\ue237", @"\ue238", @"\ue239", @"\ue23b", @"\ue23a", @"\ue23d", @"\ue23c", @"\ue24d", @"\ue212", @"\ue24c", @"\ue213", @"\ue214", @"\ue507", @"\ue203", @"\ue20b", @"\ue22a", @"\ue22b", @"\ue226", @"\ue227", @"\ue22c", @"\ue22d", @"\ue215", @"\ue216", @"\ue217", @"\ue218", @"\ue228", @"\ue151", @"\ue138", @"\ue139", @"\ue13a", @"\ue208", @"\ue14f", @"\ue20a", @"\ue434", @"\ue309", @"\ue315", @"\ue30d", @"\ue207", @"\ue229", @"\ue206", @"\ue205", @"\ue204", @"\ue12e", @"\ue250", @"\ue251", @"\ue14a", @"\ue149", @"\ue23f", @"\ue240", @"\ue241", @"\ue242", @"\ue243", @"\ue244", @"\ue245", @"\ue246", @"\ue247", @"\ue248", @"\ue249", @"\ue24a", @"\ue24b", @"\ue23e", @"\ue532", @"\ue533", @"\ue534", @"\ue535", @"\ue21a", @"\ue219", @"\ue21b", @"\ue02f", @"\ue024", @"\ue025", @"\ue026", @"\ue027", @"\ue028", @"\ue029", @"\ue02a", @"\ue02b", @"\ue02c", @"\ue02d", @"\ue02e",@"\ue332",@"\ue333",@"\ue24e", @"\ue24f",@"\ue537", nil]; 

    } 
    return emoticonsCharacters; 
} 
+0

Estoy confundido, ¿esto es solo con un iPhone con jailbreak o Apple realmente te permite hacer este tipo de personalizaciones? Si es así, ¿qué más puedo hacer? – thesowismine

Cuestiones relacionadas