应用工具使用指导

← 返回应用工具组件参考 · 全部使用指导

应用工具使用指导

应用工具把「对应用或系统做一个动作」的常用小功能放在一起:跳应用市场、检测和打开其它 App、打开链接、 打开设置页、读写剪贴板、在桌面添加快捷方式、返回桌面、彻底退出应用, 还能读本应用的版本名、安装来源,判断是不是第一次运行。一个屏幕拖一个就够用。

案例一:引导好评

包名留空表示本应用(应用要先在应用市场上架):

when 按钮_好评.Click() {
  应用工具1.OpenAppMarket("")
}

案例二:打开微信,没装就提示

when 按钮_微信.Click() {
  if 应用工具1.IsAppInstalled("com.tencent.mm") {
    应用工具1.OpenApp("com.tencent.mm")
  } else {
    对话框1.ShowAlert("请先安装微信")
  }
}

剪贴板

  • 剪贴板是全手机共用的:复制文本(文本)(Copy)的内容其它 App 能粘贴,反过来也一样;
  • 复制不弹任何提示,需要反馈时自己弹提示或改标签;
  • 粘贴文本(Paste)时剪贴板为空或内容不是文字(如图片)返回空文本;
  • 系统出于隐私限制,App 只有在前台时才能读剪贴板,也不能在后台监听剪贴板变化。

案例三:一键复制邀请码并提示

when 按钮_复制邀请码.Click() {
  应用工具1.Copy(标签_邀请码.Text)
  对话框1.ShowAlert("邀请码已复制,去微信粘贴给好友吧")
}

案例四:一键粘贴到输入框

when 按钮_粘贴单号.Click() {
  if 应用工具1.Paste() == "" {
    对话框1.ShowAlert("剪贴板里没有文字")
  } else {
    文本输入框_单号.Text = 应用工具1.Paste()
  }
}

案例五:打开 App 时识别复制的口令

用户在别处复制了「fun123口令:ABCD」这样的文字,打开 App 后自动识别并填入。 读剪贴板要等 App 完全显示后再读,所以用计时器延后 500 毫秒(计时器间隔 500,一开始启用):

when 计时器1.Timer() {
  计时器1.TimerEnabled = false
  if textContains(应用工具1.Paste(), "fun123口令:") {
    文本输入框_口令.Text = replace(应用工具1.Paste(), "fun123口令:", "")
    应用工具1.Copy("")
  }
}

识别后把剪贴板清空(复制空文本),避免下次打开重复识别。

桌面快捷方式

  • 创建快捷方式(名称,图标)(CreateShortcut)(名称, 图标) 向系统申请在桌面添加一个打开本应用的图标;
  • 安卓 8.0 及以上由系统弹出确认框,用户点「添加」才会真的出现在桌面;
  • 方法有返回值:真 只表示系统接受了申请;假 表示当前桌面或系统版本不支持,或申请无法启动;鸿蒙异步申请失败时读取屏幕的「发生错误时」事件。 所以要接在「如果」判断或赋值里用,不能单独放一行;
  • 图标用素材文件名,留空("")使用 App 自己的图标;图标读不出来时也会自动改用 App 图标。

案例六:第一次使用时询问一次

用微数据库记住已经问过:

when Screen1.Initialize() {
  if not 微数据库1.GetValue("问过快捷方式", false) {
    对话框1.ShowChooseDialog("把本应用添加到桌面,下次一点就开?", "添加到桌面", "添加", "不用了", false)
    微数据库1.StoreValue("问过快捷方式", true)
  }
}

when 对话框1.AfterChoosing(选择值) {
  if 选择值 == "添加" {
    if 应用工具1.CreateShortcut("我的记账本", "") {
      标签1.Text = "请在弹出的窗口里点「添加」"
    } else {
      标签1.Text = "当前桌面不支持添加快捷方式"
    }
  }
}

首次启动

是否首次运行(IsFirstRun)第一次调用返回真并记下标记,之后都返回假; 调试时用重置首次运行(ResetFirstRun)恢复。

案例七:首次打开弹欢迎语,并显示版本号

when Screen1.Initialize() {
  标签_版本.Text = join("版本 ", 应用工具1.GetVersionName())
  if 应用工具1.IsFirstRun() {
    对话框1.ShowAlert("欢迎使用!首次打开有新手引导")
  }
}

常见问题

现象 原因与处理
打开应用市场没反应 应用还没上架,详情页不存在;安卓没有应用商店时会打开网页版
是否已安装总是假 包名写错;鸿蒙上包名与安卓不同(微信是 com.tencent.wechat),且需系统 API 14 及以上
粘贴返回空文本 剪贴板里没有文字;刚打开 App 立刻读取时 App 还没到前台,稍后再读
部分手机弹出「已读取剪贴板」提示 安卓 12 起系统会提示 App 读取了剪贴板,属正常现象;不需要时少读
版本名一直是 1.0 版本名取自工程「应用版本名」属性,发布前记得在屏幕属性里设置
安装来源是 sideloaded 应用不是从商店装的,直接装的 APK 就是这个值
是否首次运行一直是假 第一次调用即记录标记;调试时用重置首次运行恢复
打开网络设置进了总设置页 该厂商系统不提供独立的网络设置页,已自动退回总设置
创建快捷方式返回真但桌面没出现 用户在系统确认框里没点「添加」;部分手机需要在应用权限里允许「创建桌面快捷方式」

平台说明

  • 安卓:全部支持;快捷方式 8.0 及以上由系统弹确认框。
  • 鸿蒙:桌面快捷方式需要系统 5.0.2(API 14)及以上,通过系统申请并由用户确认;返回真只表示开始申请,系统拒绝、重复添加或用户取消会通过屏幕的「发生错误时」反馈原因;其余积木写法相同。

完整 .aia 源码与操作指导

下载 .aia 源码

导入 AppToolsAllFeatures.aia,连接伴侣,或编译安装测试。首次运行标记、应用图标、版本与安装来源按当前运行包读取;在伴侣中读到的是伴侣信息,快捷方式打开伴侣。测试自己的应用信息及退出操作请安装独立包。

覆盖 17/17 方法。归档、正式编辑器(首次导入/保存重开 0 错误)、后台导入、安装包编译通过;本轮未进行真机/伴侣及桌面确认实测。

方法 操作 预期结果与条件
获取版本名/获取安装程序(GetVersionName / GetInstaller) 查看应用信息 独立包版本为 1.2.3,安装来源显示实际渠道;系统无法提供时显示组件返回值
是否首次运行(IsFirstRun) 查看应用信息两次 首次查询为真,其后为假;查询本身记录已经使用
重置首次运行(ResetFirstRun) 点重置首次运行 清除标记并重新查询,显示真;再查看变为假
复制文本/粘贴文本(Copy / Paste) 复制默认文字,再点读取 显示“大学排名应用:收藏我的大学”;也可到其他应用粘贴核对
创建快捷方式(CreateShortcut) 填名称,图标留空,点申请 使用当前包图标开始桌面申请,仍需用户确认;返回假或异步失败显示原因。鸿蒙需 API 14+;重复添加可能被系统拒绝
是否已安装(IsAppInstalled) 包名留空点检查 检查当前包;填其他包名检查另一应用,鸿蒙 API 14+ 才能查询
打开应用(OpenApp) 包名留空/填已安装包名 启动对应应用;未安装或系统拒绝时显示错误
打开应用市场(OpenAppMarket) 填已上架的真实包名 进入商店详情;直装测试包可能没有商店页面
打开链接(OpenLink) 默认网页地址,或填写实际链接 用系统应用打开网页;空输入在本页提示填写
打开应用设置页(OpenAppSettings) 点本应用设置 进入当前运行包的设置,用返回键回来
打开通知设置页(OpenNotificationSettings) 点通知设置 进入通知设置;低版本鸿蒙退回应用设置
打开系统设置/打开网络设置(SystemSettings / WirelessSettings) 点系统设置/网络设置 进入对应系统页面,用返回键回来
回首页(返回桌面)(GoHome) 返回桌面,先点取消再重试并继续 取消不离开,继续把当前应用放到后台;点应用图标恢复
退出当前应用(Shutdown) 独立包中退出测试应用,先取消再继续 取消不退出,继续结束当前应用;不会关闭手机电源

所有系统错误由屏幕 ErrorOccurred 展示函数名、错误码与原因;PermissionDenied 展示权限名称。真实服务是否允许安装查询、商店跳转和固定快捷方式由手机系统决定。

应用工具

导入方法:项目 → 导入项目(.aia)→ 选择下载的 .aia 源码文件。 完整覆盖 17/17 方法。先用无需账号的应用信息与剪贴板,再测试系统操作;每个返回结果都有界面反馈,失败由底部错误区显示。 | 操作 | 预期结果 | |—|—| | 点查看信息,再点一次 | 显示版本和安装来源;首次运行查询由真变假 | | 点重置首次运行 | 重置后首次查询为真,之后为假 | | 复制默认文本,再读取剪贴板 | 显示相同文字,可去其他应用粘贴核对 | | 图标留空,申请桌面快捷方式 | 用应用图标申请,仍需系统确认;鸿蒙需 API 14+,失败显示具体原因 | | 包名留空,检查安装/打开应用 | 操作当前运行包;填真实包名可测试其他应用 | | 打开市场/默认网页/各设置页 | 系统跳转;市场测试需要一个真实已上架的包名 | | 返回桌面/退出测试应用 | 先弹确认框,取消不离开,继续才执行 | 在伴侣中,应用信息和桌面图标属于伴侣。要验证自己应用的版本、图标、首次运行标记或退出过程,请编译独立安装包;示例版本名为 1.2.3。退出测试应用不会关闭手机电源。

文档反馈