如何判断是否是第三方输入法



在应用中我们常常自定义键盘,特别是为数字键盘增加新的功能按钮;现在越来越多的输入法支持iphone,百度。腾讯,搜狐等;
如用户安装了第三方的输入法,我们就需要辨别出来:

在IOS 4.2以上支持 UITextInputMode,可通过 [[UITextInputMode currentInputMode] primaryLanguage] 来获取当前输入法,如果是自定义的这里会显示自定义信息(例如:baidu。。)但是如何更好的识别呢,暂时也没有找到令我满意的方式:

需要知道的:
普通的数字键盘弹出时,打印[[UITextInputMode currentInputMode] primaryLanguage]跟当前语言相关,比如当前语言为en,打印所得是en-US;当前语言是zhhhans,打印所得是zh-hans;若改数字键盘是密码键盘形式,打印所得都是en-US;

暂时可以通过以下方式解决:
1、获取系统设置里当前语言,例如ja(日语),可通过判断primaryLanguage 是否为en-US或者primaryLanguage是否包含前缀ja(注:primaryLanguage 与当前语言并不完全相同);若不满足前两个条件,则应该是第三方输入法;(这种方式也可能会有问题,加入除了一个输入法,名字是japan,谁知道呢??)

2、[UITextInputMode activeInputModes],另外一个规律是,如果是系统输入法获取的这个数组中有包含一个keyboardmode对象,而出现第三方输入法键盘时,包含两个keyboardmode对象,不知道算不算规律,暂时来看也是一种方法吧;


暂时采用的第一种方式,感觉更有依据性一些,如果有更好的方法,欢迎分享

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值