ArkTS 脚本执行完为什么调用方没结果requestCode、URI 授权与 completeArkTSScriptInApp应用脚本已经生成文件并打印“成功”调用方却一直等待结果。排查后发现脚本把业务任务 ID 当成了requestCode完成时又在两个异常分支各调用一次上报。scriptManager的结果回传本质上是一份请求协议必须关联系统传入的 requestCode并且只完成一次。验证范围本文依据华为开发者官网截至 2026-09-22 的公开资料整理。当前本机 DevEco SDK 为 API 24且没有连接 HDC 真机涉及 API 26 的接口片段用于说明接入与排障边界不宣称已经完成 API 26 编译或真机验证。文中的时间戳校验、状态机、坐标换算、去重合并与资源预算逻辑已通过 Node.js 宿主测试正式上线仍需在 API 26 SDK 和目标设备上补齐编译、权限、异常分支与性能验收。能力边界先画清楚API 26 的ArkTSScriptInfo包含系统提供的requestCode和绑定 Ability 的上下文。业务可以有自己的 taskId但不能替代 requestCode。返回文件时还要通过uris与flags明确授权不能只把沙箱路径塞进普通字符串也不应为了省事授予读写双权限。输入中间状态可交付结果ArkTSScriptInfo提取 requestCode 与 context本次系统请求上下文业务执行使用独立 taskId 管理幂等成功或结构化失败ExecuteResultcode、result、uris、flags最小权限结果completeArkTSScriptInApp一次性完成调用方收到终态案例一导出报告成功但调用方拿不到文件结果对象里只返回了/data/storage/.../report.pdf字符串。这个路径属于应用沙箱调用方不能据此访问。应把允许共享的 URI 放入uris并只授予读取所需的 flag完成后按产品策略清理临时文件。interfaceCompletionGate{completed:boolean;requestCode:string}functionbeginComplete(gate:CompletionGate,requestCode:string):boolean{if(gate.completed||gate.requestCode!requestCode)returnfalse;gate.completedtrue;returntrue;}案例二超时与成功回调同时到达网络任务在超时处理后又返回成功。如果两个分支都调用完成接口调用方会收到不确定行为。让所有出口先竞争同一个完成门禁只有第一个终态可以构造ExecuteResult其余回调只记录并释放资源。typeScriptResult{code:number;result?:Recordstring,Object;uris?:string[];flags?:number};functionfailure(code:number,message:string):ScriptResult{return{code,result:{message}};}取舍不是“开或不开”把 requestCode 当作系统协议标识把 taskId 当作业务幂等标识两者分开管理。文件授权按结果逐个给最小权限所有异步出口汇入一个完成门禁。交付前检查脚本在 module.json5 中绑定正确 Ability。只使用系统传入的 requestCode 完成当前请求。成功、失败、超时和取消只允许一个终态。文件通过 URI 与最小 flags 授权不暴露沙箱路径。日志不记录完整 URI、用户内容或敏感结果。官方资料scriptManager APIHarmonyOS 26.0.0 版本说明脚本“执行完”只是内部事实调用方“收到且能使用结果”才是协议完成。requestCode、一次终态和 URI 权限缺一不可。
企业数字化 ERP 产品动态
相关推荐
Surface RT刷入树莓派OS全记录:从安全引导到驱动配置的避坑指南 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/23 7:18:17
在OKT链上搭建NFT交易市场:Solidity撮合与Hardhat部署实战 在OKT链上搭一个NFT交易市场,这事儿我前后折腾了两个周末。最开始只是好奇一条EVM兼容链的部署体验和以太坊主网能差多少,后来索性把智能合约的撮合逻辑、Hardhat部署脚本、测试网验证、合约验证全链条跑了一遍。这篇文章把中间的关键决策、代码细节和踩… · 2026/9/23 7:18:11
硕士论文查重率是多少?老程序员教你3步避坑指南 硕士论文查重率是多少?老程序员教你3步避坑指南 刚把代码从掘金技术社区复制过来,直接贴进IDE就报错?别慌,这就像你拿着硕士论文查重率是多少的参考数据,直接套用在自己完全不同的研究逻辑上。… · 2026/9/23 7:18:11
智能日程分配程序:算法优化时间管理 1. 项目背景与核心价值作为一名长期与时间管理工具打交道的开发者,我深刻理解现代人在工作、学习和休息之间寻找平衡的痛点。传统的时间管理方法往往需要手动规划,既耗时又难以动态调整。这正是我决定开发这个智能日程分配程序的初衷——通过算法自动生成… · 2026/9/23 7:58:24
光伏功率曲线K-means聚类分析与MATLAB实现 1. 光伏曲线聚类研究的工程价值光伏发电系统在运行过程中会产生海量的功率曲线数据,这些时序数据反映了设备在不同天气条件下的工作特性。我在参与某光伏电站数据分析项目时,曾面对超过20万条日发电曲线,传统的人工分类方法不仅效率低下&… · 2026/9/23 7:58:24
OpenSpec:运行时OpenAPI契约执行引擎实战指南 1. OpenSpec不是另一个CLI工具,它是Spec驱动开发的执行引擎OpenSpec这个词最近在前端和AI辅助编程圈子里冒得特别快,但很多人第一次看到时会下意识以为是某个新出的命令行工具、或者又是某个“超级增强版”的Swagger UI。其实完全不是——OpenSpec本质上… · 2026/9/23 7:58:24
Python视频播放数据分析系统:架构设计与算法实现 1. 项目概述:视频播放数据分析系统的核心价值在当今视频内容爆炸式增长的时代,平台运营者最头疼的问题莫过于:用户到底喜欢看什么?为什么有些视频突然爆火而有些优质内容却石沉大海?这套基于Python的视频播放数据分析系… · 2026/9/23 7:58:18
搞定tips系统性能优化,3步解决官方文档痛点 搞定tips系统性能优化,3步解决官方文档痛点 官方文档翻了三遍还是没搞懂怎么在Web应用里高效渲染提示框?别慌,很多开发者都卡在【tips系统】这块。它看着简单,但在高并发场景下,频繁的重绘和DOM操作会让页面卡顿得像PPT。今天咱们不聊… · 2026/9/23 7:58:17
用Bash打造cua:一个轻量级命令行效率工具箱 1. 从一条重复了三遍的命令说起事情是这样的。有一段时间我需要频繁处理一批批量导入的素材文件,每天要做的事基本一样:把一堆命名混乱的IMG_2024xxxx.JPG改成带分类前缀的编号文件,顺便清理掉文件夹里的*.tmp临时文件,再生成一份… · 2026/9/23 7:58:11
3招搞定手机怎么下载微信面试难题实战项目解析 3招搞定手机怎么下载微信面试难题实战项目解析 面试被问“手机怎么下载微信”背后的原理,90%的人答不上来。别笑,这看似弱智的问题,实则是考察你对移动应用分发机制、安全校验及网络协议理解的试金石。我带过不少校招新人,他们背了八股文,却连一个A… · 2026/9/23 0:00:03
你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 你有新短消息请注意查收:3个新手避坑指南搞定消息系统选型 面试被问“高并发下如何保证消息不丢失”,你张口就是“用Redis”,结果面试官追问“如果Redis宕机了怎么办”,你瞬间卡壳。这种场景太常见了,很多新手在背八股文时,只记住了技术名词… · 2026/9/23 0:00:29