快应用常见问题 @2020~2021

快应用是移动互联网新型应用生态,与手机系统深度整合,为用户提供更加场景化的体验。具备传统 APP 完整的应用体验,但无需安装、即点即用。本文旨在汇聚快应用常见问题,包含调试器、IDE、以及引擎、登录、支付等,统一梳理、解答,从而更好服务快应用开发者。

备注:本文内容皆来自快应用常见问题网站,如果您有相关诉求,敬请关注 faq.quickapp.cn,将在此网站保持维护 & 更新 。

快应用调试器

调试器扫码安装提示安装失败?

有以下情况,会导致安装失败,请逐一检查下:

  • (调试器)开启了 USB 调试:
    1. 您的手机是否与电脑用 USB 线连接;
    2. 是否在 IDE 终端已成功构建(dist 目录是否存在 [PackageName].debug.rpk);
    3. 开发者选项中的 USB 调试是否打开;
  • (调试器)没有开启 USB 调试,扫码安装:
    1. 您的手机是否和电脑处于同一局域网;
    2. 是否在 IDE 终端已成功构建;

快应用预览版是用来做什么用的?

当您的手机系统尚未内置快应用运行平台,或您想在开发过程中,体验快应用尚未正式发布的新功能、新特性,您可以安装快应用预览版,在线下载地址,请参见资源下载

快应用调试器,如何安装未发布应用(非局域网)?

您可以上传 RPK 至服务器,或者 Github,为具体地址生成二维码,使用调试器扫码即可(Github 路径后需加 ?raw=true 参数)。更加推荐的是:使用官方提供的「包管理平台」。您可一键上传 RPK 至包管理平台(公网),用调试器扫所生成的二维码,即可安装。更详尽的内容,可以参见快应用包管理平台使用说明

真机调试,修改源码时,如何仅重新加载当前页,不重启应用?

开发调试时,如果每次修改保存,都回到首页,这对于其他页面调试,很不方便。自调试器 1020 版本及以上,增加了应用更新策略,使得更新 rpk 仅刷新当前页,而不用重启整个应用。具体设置方式:
在「快应用调试器」中选择设置应用更新策略仅刷新页面。更加详细的信息,请参见快应用调试器 1020 版发布

快应用调试器,运行模式,是做什么用的?

运行模式是用来选择调试「快应用」,还是调试「卡片」;运行模式,选择“应用”是用于调试快应用,选择“卡片”是用于调试卡片。

手机调试器,如何调试第三方分享、推送等服务?

调试第三方分享,具体可参考官方文档说明,调试推送服务,具体可参考官方文档说明,以及各家厂商推送服务文档

调试时手机息屏, 再次打开调试工具, console 被清空?

解决办法:将快应用调试器加入后台高耗电「白名单」;具体操作:设置 => 电池 => 后台高耗电,选择快应用调试器,把它打开即可。

可否关闭调试器自动弹出创建桌面方式?

可以。即通过设置 shortcut.systemPromptEnabled = false 来关掉;具体可参考官方文档说明

快应用开发工具

快应用 IDE 都有哪些功能,哪儿能看到版本迭代信息?

快应用 IDE,是一款专为快应用开发设计的工具。使用它,可以根据模版,快速新建项目(快应用 & 卡片);编辑代码,有完善的语法辅助、检测工具;支持模拟器和真机实时预览,开发调试;同时提供了一键提交 RPK 至包管理平台、官网,以及一键分享项目等功能。更详细内容,可参见文章——快应用开发工具入门介绍。关于 IDE 版本迭代信息,可以关注快应用博客 | IDE

手机通过数据线连接电脑,而 IDE 未提示设备已连接?

  1. 打开手机设置找到关于手机,向下滑动找到软件版本号,连续多次点击软件版本号直到提示“您已处于开发者模式”。
  2. 打开手机设置找到开发者选项,向下滑动找到USB 调试并打开该选项。
  3. 重新插拔手机,手机上会弹出授权对话框,勾选“始终允许使用这台计算机进行调试”,点击确定按钮;

点击 IDE 顶部 Debug 调试按钮开始调试,手机端快应用却没有运行起来?

  1. 打开手机设置找到关于手机,向下滑动找到软件版本号,连续多次点击软件版本号直到提示“您已处于开发者模式”。
  2. 打开手机设置找到开发者选项,向下滑动找到USB 调试并打开该选项。
  3. 重新插拔手机,手机上会弹出授权对话框,勾选“始终允许使用这台计算机进行调试”,点击确定按钮。
  4. 确认手机设备已经连接,IDE 右侧预览界面头部手机图标处于点亮状态;
  5. 点击 IDE 顶部hap``更新手机环境菜单,并在手机上按提示完成快应用预览版快应用调试器的安装;
  6. 打开手机设置找到权限管理,将快应用预览版存储关联启动后台弹出界面权限打开;
  7. 打开手机快应用调试器并将开启 USB 调试开关开启,此时会弹出授权对话框,点击始终允许按钮;
  8. 重新点击Debug 调试按钮开始调试;

编辑代码 Script 部分自动补全及悬浮提示不生效?

  1. 打开 IDE 首选项 => 设置,选择工作区设置,找到扩展 hap-language-features 中的 Extract Hap Types 并勾选 enable to import the latest types
  2. 退出并重新启动 IDE;
  3. 打开工程中的任意一个 .ux 文件;
  4. 查看工程目录下 node_modules 是否生成类似 @service.account.d.ts 的文件,存在则表示:自动补全及悬浮提示可以正常使用了;

IDE 模拟器预览跟手机端效果不一致?

由于纯原生渲染与 Web 渲染存在的差异性,导致部分预览效果不一致。我们建议以手机端效果为准。备注说明:对 于 IDE 预览,有在持续与真机对齐;倘若您有发现有差异的部分,还请给予反馈,感谢。

快应用开发工具怎么调试元素样式?

  • 基于模拟器调试:更新 IDE 至 3.3.0 版本以上;在 IDE 顶部导航栏,点击调试器 & 模拟器按钮🔘,使其处于激活态;在弹出的 DEVTOOLS 中,选中 UX 面板,即可开始调试元素。
  • 基于真机调试:
    • 基于 USB 调试:手机使用 USB 连接电脑;在 IDE 顶部导航栏,点击 USB 调试;在弹出的 Window 中,选中 Elements 面板,即可开始调试元素。
    • 基于局域网调试:点击 IDE 预览区顶部二维码小按钮,使用快应用调试器扫描所弹出的二维码;打开后回退至调试器,点击开始调试按钮🔘;在弹出的 Window 中,选中 Elements 面板,即可开始调试元素(确保手机跟电脑在同局域网)。

快应用开发工具怎么断点调试?

IDE 暂时还不具备这个功能(有考虑在后续迭代中,添加此功能,敬请期待),需要在 DevTools 面板进行断点调试。

快应用如何打出带签名的正式包?

IDE 正常构建是 Debug 包;顶部导航栏右侧,点击「打包」、「上传」所构建的包,即为 release 带签名的正式包(如果本地没有签名,会提示让先新建签名)。

IDE 上点 USB 调试无法打开调试器面板?

清理手机中调试器的进程,再点 USB 调试按钮,或者使用快捷键 F5;这是一个已知问题,在后期版本中,会联合调试器一起排查解决。

点击 IDE USB 按钮开始调试,手机端没有运行起来?

  1. 确认手机设备已经连接,IDE 右侧预览界面头部【手机】图标处于点亮状态
  2. 确认手机端【快应用预览版】和【快应用调试器】都安装成功,若未安装请按 IDE 的提示安装
  3. 打开手机【设置】找到【权限管理】,将【快应用预览版】的【存储】、【关联启动】和【后台弹出界面】权限打开
  4. 打开手机【快应用调试器】并将【开启 USB 调试】开关开启,此时会弹出授权对话框,点击【始终允许】按钮
  5. 重新点击 IDE USB调试 按钮 或者快捷键 F5 开始调试

IDE 调试器 DEVTOOLS 区域,操作无任何响应?

引发此问题具体原因,仍需排查;您可有以下两种方法来解决:

  1. 代码区,点击鼠标右键;
  2. 重新加载窗口(Ctrl+ Shift + P, Reload Window);

IDE 如何切换「中/英」文的设置?

点击 IDE 顶部导航栏,首选项(Preferences) => 选择语言(Select Language),选择想切换的语言即可。

您也可以基于快捷键 Ctrl Shift P 打开命令面板(Mac:Command Shift P),输入“language”,选择需要切换的语言即可。

快应用其他问题

快应用支持调起原生 APP 么?

功能上已经实现,但是大部分厂商审核是不允许的。目前支持的只有华为。调用方式,可以参考如何在快应用中打开原生应用?

快应用可否直接跳转到微信?

可以通过第三方服务如分享支付等唤醒微信。目前直接跳转到 app 的需求,暂时只有功能上的实现,但是大部分厂商审核,不会允许该功能上线,详见 router.push 打开原生应用

哪里可以检索快应用开发常见问题?

快应用问题检索,有将快应用开发中,遇到的问题进行统一汇聚整理;可以根据关键字,到该网站进行检索。

如果不能解决问题,可以前往快应用论坛发帖,或者加入快应用官方技术交流群(微信 OR QQ),<span class="hljs-meta">@技术弟</span>提出疑问,寻求解答。

快应用支付常见问题说明

快应用第三方登录支付签名教程一文中,对如何创建第三方登录、支付签名,快应用登录,以及支付常见问题,做了详细解答。如有相关其他问题,欢迎留言评论。

能否使用 QQ、微信登陆以及支付功能?

可以,详见快应用开发文档第三方服务。不过联盟不同厂商,对接口的支持略有不同,具体可以查看每个接口中的支持明细,如微信登录,可参考支持明细

快应用可否使基于 vue 进行开发?

自联盟引擎 1060+,开始支持使用 vue 开发快应用,具体可以参考官方文档:使用 Vue 开发快应用提示:华为快应用平台,未集成 Vue 框架,因此不支持 Vue DSL 的运行。

适配注意事项:需保证快应用的一级页面必须开启 menuBar。具体步骤如下:

  1. 删除所有页面文件(<span class="hljs-selector-class">.ux</span><span class="hljs-selector-class">.vue</span> 后缀名)中 onMenuPress 生命周期的实现;
  2. manifest.json 的 <span class="hljs-built_in">display</span> 属性中,若不手动添加 menubarData 项,则默认为全部快应用页面打开 menuBar(推荐做法);
  3. 若有需要手动关闭 menuBar 的页面,在 manifest.json 的 display 属性下的 pages 子项,设置对应页面 key 值下 menuBarData 的 menubar 参数为 false;

更详尽的内容,请参见快应用文档之 menuBar 配置

快应用是否支持使用 npm 上 js 库?

可以。理论上,如果该 js 库,不涉及 Dom 操作,快应用都支持,使用方式跟 Web 开发方式一致(如 crypto-js 等等)。