用途:这是 microsoft/power-platform-skills 中的内部实现技能,用户应通过 /add-native pdf-viewer、/add-native pdf-control 或 /add-native @microsoft/power-apps-native-pdf-viewer 调用,由 /add-native 解析能力后路由至此。它负责生成或校验原生 PDF 查看器封装,并演示如何调用其原生 React Native API。
主要能力:封装 src/native/pdfViewer.ts,接受 https:// URL 与非空 file:// URI,在调用原生代码前拒绝 content://、blob:、http://、空值和格式错误的地址;返回可辨识联合类型且不抛异常;在 JS 已安装但原生构建不可用时返回 NATIVE_MODULE_MISSING;在可用时暴露 shared、printed、dismissed 等查看器动作结果;其他原生错误返回 VIEWER_FAILED。
使用方式:先校验工作目录是已初始化应用(存在 app.config.js、power.config.json、package.json 与 src),再确认 package.json 已包含 @microsoft/power-apps-native-pdf-viewer 且安装版本不低于 0.2.9;随后按需创建或复用封装,屏幕代码应导入封装而非直接导入原生包,例如 openHttpsPdf('https://example.com/report.pdf', { title: 'Inspection report' }),并处理 ok 与非 ok 的各类原因。最后运行 npx --no-install tsc --noEmit 做类型检查。
适用场景与限制:适用于 Power Apps 原生代码应用中的原生 PDF 查看。该技能不会安装原生代码或修改原生配置,若包是刚在技能外添加的,需要在本工作流之外进行原生重建;包已在构建中时,Metro 热重载即可。不要使用包 README 中的 HostingSDK / PCF 路径,也不要注册 Companion PCF 或 NativePdfViewerExtension。选取本地 PDF 请用 expo-document-picker,生成本地 PDF 请用 /add-native pdf-report。分享与打印由原生查看器内置,没有单独的 JS 调用。其他收费、平台等细节暂未提供。