当前位置: 首页 > news >正文

HarmonyOS 拉起系统浏览器与短信界面:WantUtil.toWebBrowser 与 startMMS 实战

文章目录

    • 背景
      • 方法总览
      • URI 常量跳转——覆盖更多设置页
      • 拉起系统浏览器
      • 跳转应用市场详情页
      • 拉起文件管理器
      • 拉起短信界面
      • 完整的 WantUtil 跳转能力速查
      • 写在最后

背景

近期发现一款很有意思的HarmonyOS 三方库, 地址 @pura/harmony-utils(V1.4.0) , 作者是"桃花镇童长老", 我这里也是直接通过该作者公布的源码进行案例编写进行,写了到目前写了一部分demo ,感觉确实很有帮助,这里呢也是开始写一个系列的演示demo 供大家参考。如有帮助可以在OpenHarmony中进行下载安装进行使用哦

案例demo导航展示

↓↓↓↓↓↓接下来言归正传 ↓↓↓↓
上一篇讲了 WantUtil 的基础快捷方法,这篇来讲两块更有意思的内容:

一是通过URI 常量跳转更多系统设置页面;二是拉起系统浏览器打开网页、跳转应用市场详情页、拉起短信界面

方法总览

URI 常量跳转——覆盖更多设置页

WantUtil.toSetting()加上 URI 参数可以跳到更多指定的设置子页面:

// 显示和亮度设置this.Btn('toSetting(URI_DISPLAY) 显示和亮度','#9B59B6',()=>{this.launch('toSetting(URI_DISPLAY)',()=>WantUtil.toSetting(WantUtil.URI_DISPLAY));})// 日期时间设置this.Btn('toSetting(URI_DATE_AND_TIME) 日期时间','#8E44AD',()=>{this.launch('toSetting(URI_DATE_AND_TIME)',()=>WantUtil.toSetting(WantUtil.URI_DATE_AND_TIME));})// 隐私与安全this.Btn('toSetting(URI_PRIVACY) 隐私与安全','#76448A',()=>{this.launch('toSetting(URI_PRIVACY)',()=>WantUtil.toSetting(WantUtil.URI_PRIVACY));})// 关于本机this.Btn('toSetting(URI_ABOUT_DEVICE) 关于本机','#6C3483',()=>{this.launch('toSetting(URI_ABOUT_DEVICE)',()=>WantUtil.toSetting(WantUtil.URI_ABOUT_DEVICE));})// 辅助功能this.Btn('toSetting(URI_ACCESSIBILITY_FEATURE) 辅助功能','#5B2C6F',()=>{this.launch('toSetting(URI_ACCESSIBILITY_FEATURE)',()=>WantUtil.toSetting(WantUtil.URI_ACCESSIBILITY_FEATURE));})// 生物识别与密码this.Btn('toSetting(URI_BIOMETRICS_AND_PASSWORD) 生物识别','#4A235A',()=>{this.launch('toSetting(URI_BIOMETRICS_AND_PASSWORD)',()=>WantUtil.toSetting(WantUtil.URI_BIOMETRICS_AND_PASSWORD));})// 系统和更新this.Btn('toSetting(URI_SYSTEM_AND_UPDATES) 系统和更新','#2C3E50',()=>{this.launch('toSetting(URI_SYSTEM_AND_UPDATES)',()=>WantUtil.toSetting(WantUtil.URI_SYSTEM_AND_UPDATES));})// 输入法设置this.Btn('toSetting(URI_SET_INPUT) 输入法设置','#2E4057',()=>{this.launch('toSetting(URI_SET_INPUT)',()=>WantUtil.toSetting(WantUtil.URI_SET_INPUT));})// 语言设置this.Btn('toSetting(URI_SET_LANGUAGE) 语言设置','#1B2631',()=>{this.launch('toSetting(URI_SET_LANGUAGE)',()=>WantUtil.toSetting(WantUtil.URI_SET_LANGUAGE));})// 用户和账户this.Btn('toSetting(URI_USERS_ACCOUNTS) 用户和账户','#212F3C',()=>{this.launch('toSetting(URI_USERS_ACCOUNTS)',()=>WantUtil.toSetting(WantUtil.URI_USERS_ACCOUNTS));})

这些 URI 都定义在WantUtil的静态常量上,用WantUtil.URI_XXX访问,不需要自己背 URI 字符串。

URI 常量速查表:

常量名跳转目标使用场景
URI_DISPLAY显示和亮度字体大小建议
URI_DATE_AND_TIME日期和时间时区相关提示
URI_PRIVACY隐私与安全权限管理引导
URI_ABOUT_DEVICE关于本机显示设备信息
URI_ACCESSIBILITY_FEATURE辅助功能无障碍设置
URI_BIOMETRICS_AND_PASSWORD生物识别与密码指纹/面容设置
URI_SYSTEM_AND_UPDATES系统和更新版本更新提示
URI_SET_INPUT输入法设置切换输入法引导
URI_SET_LANGUAGE语言和地区多语言应用引导
URI_USERS_ACCOUNTS用户和账户账号登录相关

拉起系统浏览器

@StateinputUrl:string='https://www.harmonyos.com';// 输入 URLTextInput({text:this.inputUrl,placeholder:'URL'}).width('100%').height(38).fontSize(13).onChange(v=>{this.inputUrl=v;})// 用默认浏览器打开this.Btn('toWebBrowser(url) 默认浏览器','#E74C3C',()=>{this.launch(`toWebBrowser("${this.inputUrl}", false)`,()=>WantUtil.toWebBrowser(this.inputUrl,false));})// 让用户选择浏览器this.Btn('toWebBrowser(url, true) 选择浏览器','#C0392B',()=>{this.launch(`toWebBrowser("${this.inputUrl}", true)`,()=>WantUtil.toWebBrowser(this.inputUrl,true));})

两个参数:

  1. url— 要打开的网址,要带https://前缀
  2. showChoosertrue弹出浏览器选择框;false用系统默认浏览器直接打开

如果用户设备上安装了多个浏览器,传true让用户自己选更合适。

跳转应用市场详情页

@StateinputBundleName:string='com.huawei.hmos.browser';TextInput({text:this.inputBundleName,placeholder:'应用包名'}).width('100%').height(38).fontSize(13).onChange(v=>{this.inputBundleName=v;})this.Btn('toAppGalleryDetail(bundleName)','#F39C12',()=>{this.launch(`toAppGalleryDetail("${this.inputBundleName}")`,()=>WantUtil.toAppGalleryDetail(this.inputBundleName));})

传入要打开的应用包名(bundleName),会拉起应用市场并跳到该应用的详情页。

常见使用场景:

  • 提示用户去市场更新到最新版本
  • 推荐相关应用
  • 引导用户给应用评分

拉起文件管理器

this.Btn('toFileManagement() 打开文件管理器','#E67E22',()=>{this.launch('toFileManagement()',()=>WantUtil.toFileManagement());})

直接拉起系统文件管理器,适合提示用户清理文件、查找下载内容等场景。

拉起短信界面

@StateinputPhone:string='10086';@StateinputContact:string='客服';Row({space:8}){TextInput({text:this.inputPhone,placeholder:'电话'}).layoutWeight(1).height(38).fontSize(13).onChange(v=>{this.inputPhone=v;})TextInput({text:this.inputContact,placeholder:'联系人名称'}).layoutWeight(1).height(38).fontSize(13).onChange(v=>{this.inputContact=v;})}// 带联系人名称的短信this.Btn(`startMMS("${this.inputPhone}", "${this.inputContact}")`,'#8E44AD',()=>{this.launch(`startMMS("${this.inputPhone}", "${this.inputContact}")`,()=>WantUtil.startMMS(this.inputPhone,this.inputContact));})// 仅传号码this.Btn('startMMS("10086") 仅号码','#76448A',()=>{this.launch('startMMS("10086")',()=>WantUtil.startMMS('10086'));})

两个参数:

  1. phone— 收件人电话号码(必填)
  2. contactName— 联系人显示名称(可选,不传只显示号码)

适合"发送验证码"、"联系客服"等场景,拉起短信 App 并预填收件人。

完整的 WantUtil 跳转能力速查

方法用途
toSetting()设置首页
toSetting(URI_XXX)指定设置子页
toAppSetting()本应用设置
toNotificationSetting()通知设置
toWifiSetting()WiFi设置
toBluetoothSetting()蓝牙设置
toNfcSetting()NFC设置
toNetworkSetting()移动网络
toVolumeSetting()声音振动
toStorageSetting()存储设置
toBatterySetting()电池设置
toWebBrowser(url)系统浏览器
toAppGalleryDetail(pkg)应用市场详情
toFileManagement()文件管理器
startMMS(phone, name)短信界面

写在最后

WantUtil 的跳转能力基本覆盖了应用开发中 90% 的系统跳转需求,不需要自己去拼 Want 对象和 URI 字符串。

特别是toAppSetting()+ 权限引导这个组合,是现在应用里的标准做法,强烈建议把WantUtil加入你的工具库。

http://www.jsqmd.com/news/939268/

相关文章:

  • 请结合以下说明,先完成类似python的内置函数。 然后再去完成内置库(标准款) ‌内置函数‌
  • 2026年6月安庆黄金回收白银回收铂金回收权威排行榜TOP5:纯金+金条+银条+钯金 门店地址联系方式推荐
  • 基于Arduino Uno与七段数码管的简易任务计数器设计与实现
  • 2026数字展厅设计技术干货:数字孪生沙盘、数字孪生钢厂、数字展厅、数字沙盘、虚拟展厅、设备数字孪生、360全息柜选择指南 - 优质品牌商家
  • 多设备组网与Mesh网络入门
  • 从新手到高手:Smithbox游戏修改工具完全指南 [特殊字符]
  • 2026年更新:浙江生产线定制厂家选型指南与趋势洞察 - 2026年企业资讯
  • 仿真绿植绿化技术核心要点及服务商选择参考推荐:仿真绿植绿化工程/仿真绿植绿化电话/四川仿真绿植绿化/优选指南 - 优质品牌商家
  • Claude Code使用教程(vibe coding) 二
  • GlosSI 入门指南:让 Steam 控制器在任意游戏和应用中畅玩
  • 四川智慧垃圾箱厂家排行:四川楼顶发光字/四川民宿集装箱/四川苹果舱/四川钢结构仿木屋/合规性与服务能力实测对比 - 优质品牌商家
  • 2026年近期如何筛选靠谱的气力输送设备优质厂家:以天顺机械为例的专业解析 - 2026年企业资讯
  • Agent的四种执行模式,解锁人机协作新境界!
  • 如何快速部署HS2-HF Patch:解锁Honey Select 2完整游戏体验的终极指南
  • 别再死记硬背了!用Python手撸一个ID3决策树,从熵到分类器一次搞懂
  • 专为食品进出口打造的外贸ERP!智能生成发票、质检报告高效合规
  • 动手实验:用Python和Mininet验证TCP Cubic/BBR的Jain公平性指数
  • win11中启用经典win10右键菜单和还原默认win11右键菜单如何操作
  • 分立元件无稳态多谐振荡器:用晶体管与RC电路实现LED交替闪烁
  • 告别编译噩梦:我在Ubuntu 18.04/20.04上为Xenomai 3.2.1打Linux 5.10.76补丁的五个关键抉择
  • 2026年当下,迪庆好的学校保洁机构如何选?腾兴物业深度解析 - 2026年企业资讯
  • 【判断正负】信息学奥赛一本通C语言解法(题号1039)
  • ## 2026深圳全屋定制实测:西丽自有工厂木点点ENF套餐到底值不值? - 产品测评官
  • VoiceFixer语音修复工具:3种模式一键解决噪音、失真和低质量音频问题
  • 四川地坪工程技术解析及2026年主流服务商盘点:宜宾彩色epdm颗粒供货商公司/宜宾彩色艺术地坪公司/实力盘点 - 优质品牌商家
  • 三步永久保存微信聊天记录:WeChatMsg免费数据备份终极指南
  • 组织与交付 如何让产品 工程 合规 在 Agent 项目里不互相拖后腿
  • 【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
  • ESET-KeyGen终极指南:5分钟掌握ESET安全软件免费试用激活技巧
  • 第41篇|补光与水印:效果选项如何参与最终照片记录