跳到文档正文

MIP DESKTOP · 扩展开发

常见问题

按现象排查页面、权限、SDK 和资源路径问题。

更新于 约 2 分钟

先定位失败发生在安装、打开页面、调用宿主还是后台请求,再核对对应声明。一次只调整与现象相关的配置。

页面打不开或资源空白

检查扩展是否启用,contributes.views 与 webviews 是否使用同一个 View ID,入口文件是否真实存在于包内。

再检查 HTML 的脚本、样式和图片是否为包内相对路径。开发服务器可以访问的 /src/、绝对磁盘路径或在线 CDN,不代表安装后的扩展也可以访问。

页面在独立浏览器中预览时没有 Desktop Bridge。基础界面可以显示,依赖宿主的操作应明确提示环境不支持。

桌面会话同步失败

先确认当前承载的是 .mipx 扩展还是普通 Web 应用。

  • .mipx 扩展需要在 Manifest 中声明 identity.read。
  • 普通 Web 应用需要由平台授予相应身份能力,不能通过添加扩展 Manifest 解决。
  • 确认 Desktop 已登录、单位上下文有效,以及使用了适合承载环境的 SDK。

读取身份使用 公开身份接口,不要恢复读取 userInfo 或复制平台 Token 的旧方式。

能力探测成功但调用失败

capabilities.has() 只说明接口存在。继续检查 Manifest 权限、当前登录状态、贡献点、依赖扩展与实际调用结果。

未授权、目标未启用、命令未声明、端点未配置和后台拒绝是不同问题,应保留明确的错误信息,不统一归为网络异常。

命令返回值为什么多了一层

WebView 命令调用返回 ExtensionResponse,先检查外层 code,再读取 data。Host 命令调用返回业务值,失败通常通过 Promise 拒绝。

不要看到 code/data 就不断解包。业务值本身可能包含同名字段;后台 API 也应按各自返回契约处理。参见 命令返回值。

应用入口、侧栏或卡片没有出现

确认贡献点已经被目标 Desktop 发行版支持,并核对入口、可见性与权限。应用入口、侧栏和工作台卡片需分别声明,一个贡献点不会自动生成其余位置。

确认扩展已启用、View 文件存在、声明属于当前扩展。参见 页面与贡献点。

SDK 无法安装或导入

确认拿到了已构建 SDK 和匹配的协议包;当前不要假定公共 npm 上已发布这些包。使用交付文件安装时,以实际文件名和版本为准。

Host 导入 /host,页面导入 /webview,构建时将依赖内联到自己的资源。安装后不应解析开发机源码路径。

打包成功但安装被拒绝

依次检查 ZIP 根目录、Manifest 格式、版本兼容、包内入口和签名要求。开发包与正式包的接收规则可能不同。

不要把压缩成功视为签名通过,也不要通过扩大权限或修改随机字段绕过错误。记录具体错误及目标宿主版本,再对照 发布检查。

基础契约:Extension API 1.x;具体能力以目标 Desktop 发行版为准。