我的hbuilder开发的app,在ios上面想知道用户是否安装了第三方的输入法,如下代码据说可以获取到每个输入法的类名,
但是在uts里面无法编译通过;
一.百度出来的据说可用的代码
let keyModes = UITextInputMode.activeInputModes
for mode in keyModes{
let typeStr = type(of: mode)
if UIApplication.shared.textInputMode == mode {
if(typeStr == NSClassFromString("UIKeyboardInputMode")){
// print("系统输入法")
}else{
// print("第三方输入法")
}
}
}
二.我们自己的代码
var txt='输入法:';
//let keyModes = UITextInputMode.activeInputModes
let keyModes = UITextInputMode.activeInputModes
for(let i=0;i<keyModes.length;i++){
let typeStr =typealias(keyModes[i])+'^'+ keyModes[i].self
if(keyModes[i].primaryLanguage!=null)txt+='=i='+String(i)+typeStr+'='+ (keyModes[i].primaryLanguage as string)
}
txt+='=len1gth='+String(keyModes.length);
老谢123
- 发布:2023-05-15 10:25
- 更新:2023-05-24 12:14
- 阅读:337
uts开发ios,期望获取ios的输入法的class,但是无法编译通过
分类:uts
老谢123 (作者) - 老谢123
另外一个判断方法是:
目前可以通过获得当前的UITextInputMode实例来判断是否属于第三方输入法
若是系统输入法,实例为UIKeyboardInputMode(私有API)对象。
若是第三方(百度、搜狗等),实例为UIKeyboardExtensionInputMode(私有API)对象。
======但是我也不知道在uts如何实现这个判断
下面方式可以实现:
//swift代码
func isThirdPartyKeyboard() -> Bool {
let mode = UIApplication.shared.textInputMode
if let model = mode, model.description.contains("Extension") {
return true
}
return false
}
// uts代码
function isThirdPartyKeyboard(): bool {
let mode = UIApplication.shared.textInputMode
if (mode != null) {
if (mode!.description.contains("Extension") ) {
return true
}
}
return false
}