当前位置: 首页 > 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.gsyq.cn/news/1450666.html

相关文章:

  • 2026年更新:浙江生产线定制厂家选型指南与趋势洞察 - 2026年企业资讯
  • Agent的四种执行模式,解锁人机协作新境界!
  • 如何快速部署HS2-HF Patch:解锁Honey Select 2完整游戏体验的终极指南
  • 动手实验:用Python和Mininet验证TCP Cubic/BBR的Jain公平性指数
  • win11中启用经典win10右键菜单和还原默认win11右键菜单如何操作
  • 【判断正负】信息学奥赛一本通C语言解法(题号1039)
  • 2026年当下,迪庆好的学校保洁机构如何选?腾兴物业深度解析 - 2026年企业资讯
  • 四川地坪工程技术解析及2026年主流服务商盘点:宜宾彩色epdm颗粒供货商公司/宜宾彩色艺术地坪公司/实力盘点 - 优质品牌商家
  • 【算法分析与设计】第36篇:计算几何基础:凸包问题的分治与扫描线解法
  • ESET-KeyGen终极指南:5分钟掌握ESET安全软件免费试用激活技巧
  • 2026冲刺用!AI论文网站测评:最新推荐与实用对比
  • 2026年物流仓配系统品牌TOP5排行及选型参考 - 优质品牌商家
  • 51单片机驱动直流电机+LabVIEW实时监控调速实操资源包
  • 第三方实测测评:极客速达海外一件代发,中小跨境卖家优选供应链服务商 - 星际AI
  • 从VR到裸眼3D:用UE5 SpatialLabs插件开发,你需要绕开哪些‘思维定式’?
  • 做AI编码开发,我终于戒掉“显卡算力焦虑”:弃RTX5060选M4 Mac Mini实录
  • 2026年q2仓配管理软件品牌评测:仓储配送管理系统/仓库智能管理系统/仓库订单管理系统/从场景到实效的选型参考 - 优质品牌商家
  • Java基础:Math工具类全方位详解
  • 防火墙为什么能根据 IP 地址过滤?IP 不是会变的吗?
  • 自指螺旋与电子内禀自旋的对应关系推导(世毫九实验室原创研究)
  • 如何用Python自动化抢票神器告别演唱会门票秒光烦恼
  • Prompt调优避坑手册,为什么你写的总差点意思
  • QKeyMapper终极指南:5分钟掌握Windows最强免费按键映射工具
  • 大模型预训练数据工程中针对 Milvus向量数据库分区分片设计 低质量文本的启发式过滤算法优化路径
  • 知乎专栏文章爬虫实战:从登录态维持到数据持久化的完整指南,爬取知乎专栏文章(标题、点赞数、内容)o 技术点:登录与Cookie维持
  • Perseus碧蓝航线脚本补丁:终极全皮肤解锁完整指南
  • 从Jupyter Notebook裸跑→ISO/IEC 23053合规实验体系:一位CTO的36小时紧急迁移实录(含Checklist与脚本包)
  • 【移动测试】跨平台 UI 一致性检查:VLM 对比 iOS 与 Android 端渲染差异的自动化方案
  • 鸣潮模组实战指南:3种创新方案优化游戏体验
  • ripgrep 15.1.0 官方版下载(夸克网盘+百度网盘,SHA256校验)