2016-05-13 83 views
4

在iOS中,在本机表情符号键盘中,您可以看到最近使用的表情符号。我想知道是否可以从我的应用程序中获取这些Emojis(这是独立于应用程序)的数据。访问iOS中最近使用的表情符号列表

我的目标是在我的应用程序中显示给定用户最常用的表情符号。

+1

在我看来,这是键盘应用程序的东西。 –

+6

您只能跟踪最近在您的应用中输入的emojis。我不希望我的键盘使用数据泄漏到任何其他应用程序,因为我使用键盘来键入我的密码。 –

回答

2

如果你只是想要一个表情符号选择器,你可以使用/修改类似SYEmojiPopoverAGEmojiKeyboard的库,它允许你完全控制输出而不会弄乱iOS内部(尽管“最近”列表将是特定于应用程序的) 。


在iOS 9喜好存储在com.apple.EmojiPreferences套件,你可以通过提取最近使用的表情符号列表:

// swift 3: 
let prefs = UserDefaults(suiteName: "com.apple.EmojiPreferences")! 
let defaults = prefs.dictionary(forKey: "EmojiDefaultsKey")!["EmojiRecentsDefaultsKey"]! as! [String: Any] 
let recents = defaults["RecentsKey"]! as! [String] 
print(recents) 

// swift 2: 
let prefs = NSUserDefaults(suiteName: "com.apple.EmojiPreferences")! 
let recents = prefs.dictionaryForKey("EmojiDefaultsKey")!["EmojiRecentsDefaultsKey"]!["RecentsKey"]! as! [String] 
print(recents) 

// prints e.g. ["", "", "", "⌛", "", "", "⛪", "", ""] 

注意,这是UNDOCUMENTED,我有只有通过Xcode部署才能在iOS 9上进行检查。不能保证App Store评论者会允许这种用法,也不保证它可以在过去或未来的版本中使用。