我的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);

- 发布:2023-05-15 10:25
- 更新:2023-05-24 12:14
- 阅读:431
uts开发ios,期望获取ios的输入法的class,但是无法编译通过


老谢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
}
-
-
回复 老谢123: 您好我想请问您下,我直接能在uniappx项目中写swift代码吗。现在单位想要转多端开发方案,我们公司只有前端开发没有原生开发,现在正在调研每种技术方案。如果可以的话 劳烦您回答交流下
2025-03-17 17:30