用途:add-camera 是 Microsoft Power Platform 技能集(microsoft/power-platform-skills)中的内部实现技能,本身不应直接调用;用户应使用 /add-native camera、/add-native image-picker、/add-native barcode-scanner 或 /add-native qr-scanner,由 /add-native 解析能力后路由至此。它用于为 Power Apps 移动应用生成带类型的相机与图片选择器包装、可选的条码/二维码扫描控件,以及可选的 Dataverse 图片/文件自定义上传指引。
主要能力:生成 src/native/camera.ts(takePhoto 拍照与 pickImage 相册选择,返回可辨识联合结果,含权限辅助函数),按需生成 src/native/barcodeScanner.tsx(基于 expo-camera 的 CameraView 条码/二维码实时扫描控件,包含扫描锁、暂停与重置键、覆盖层渲染),以及可选的 src/native/cameraUpload.ts 自定义上传辅助。所需模块因工件集而定:photo/gallery 需要 expo-image-picker,scanner 需要 expo-camera,upload 需要 expo-file-system。
使用方式:该技能只写入 src/native/ 下的 JS 文件,不安装模块、不修改 package.json 或 app.config.js。执行前需先验证工作目录已初始化(存在 app.config.js、power.config.json、package.json),并校验所需模块已在模板内置依赖中;若缺失则停止,不做 npx expo install。工作流依次为验证项目、验证模块、对账工件、相机决策、扫描器决策、存储决策、上传决策、验证、汇总。常用命令示例:cd -- '<working_dir>' 进入工作目录;node - '<approved-artifact-keys-json>' 校验模块。
适用场景与边界:适用于专用证据拍摄页、条码/二维码扫描门禁、选择相册图片并转换后再保存等自定义采集流程。普通 Dataverse File/Image 表单字段应使用 @microsoft/power-apps-native-host 的 FilePicker/ImagePicker;签名、手写、墨迹类采集归属 /add-native pen-input。扫描器单独请求无需 camera.ts,上传单独请求无需拍摄或扫描包。
限制:客户二进制来自预构建 rewrap 基础包而非客户 package.json,因此在此添加原生模块会导致 rewrap 后运行时崩溃,故严禁安装模块。缺少所需模块或存在超出批准的工件时,应返回 NEEDS_CONTEXT 或询问,而非跳过。具体收费、价格与平台支持情况暂未提供。