如何判断当前设备是否支持使用captureTextFromCamera API?
iOS设备
captureTextFromCamera API支持判断方案 captureTextFromCamera虽然是iOS15及以上系统才支持的API,但硬件能力、用户功能开关都会影响实际可用性,不能仅通过系统版本或设备型号判断,推荐使用系统原生的能力校验方法,逻辑如下:
- 直接调用遵守
UIKeyInput协议的控件(比如UITextField、UITextView)的canPerformAction(_:withSender:)方法校验,该方法会自动完成「系统版本+硬件支持+用户功能开关」三重判断,结果最准确。
Swift 代码示例
let isSupported = UITextField().canPerformAction(#selector(UIResponder.captureTextFromCamera(_:)), withSender: nil)
返回true代表当前设备可正常使用该API,返回false代表不可用。
Objective-C 代码示例
BOOL isSupported = [[UITextField new] canPerformAction:@selector(captureTextFromCamera:) withSender:nil];
额外说明:不要硬编码设备型号列表做判断,后续苹果可能给更多设备开放该能力,也存在用户手动关闭实况文本导致功能不可用的场景,原生校验方法可以覆盖所有边界情况。
内容的提问来源于stack exchange,提问作者luckysmg
相关产品推荐
相关产品推荐

