如何为Flutter TextField接入iOS系统自带的Live Text功能
Flutter TextField接入iOS系统Live Text(实况文本)功能实现方案
前置要求
- 设备系统为iOS 15.0及以上,机型为iPhone XS/XR及更新版本
- Flutter SDK版本 >= 3.7.0
1. 配置iOS端权限
Live Text功能需要调用相机进行文字识别,首先需要在iOS项目的Info.plist中添加相机权限申请描述:
打开ios/Runner/Info.plist文件,添加如下配置:
<key>NSCameraUsageDescription</key> <string>需要使用相机权限识别实况文本</string>
也可以通过Xcode打开iOS工程,在Info标签页的Custom iOS Target Properties中添加Privacy - Camera Usage Description项,填写对应权限说明。
2. Flutter端输入框配置
Flutter 3.7.0及以上版本的TextField和CupertinoTextField已经原生支持开启Live Text能力,只需给输入框添加enableLiveTextInput: true属性即可:
Material风格TextField示例
TextField( enableLiveTextInput: true, // 其余自定义配置保留即可 decoration: const InputDecoration( hintText: '激活输入框后即可在键盘工具栏看到实况文本入口' ), )
Cupertino风格TextField示例
CupertinoTextField( enableLiveTextInput: true, // 其余自定义配置保留即可 placeholder: '激活输入框后即可在键盘工具栏看到实况文本入口', )
异常排查
- 若输入框激活后未出现Live Text按钮:先验证系统原生应用(如备忘录)的输入框是否显示该按钮,若原生应用也没有则说明设备/系统不支持该功能
- 若点击Live Text按钮提示权限不足:检查Info.plist中的相机权限描述是否正确配置,App是否已经获得相机授权
内容的提问来源于stack exchange,提问作者The43Joker
相关产品推荐
相关产品推荐

