欢迎光临
我们一直在努力

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 用户和账户 账号登录相关

拉起系统浏览器

@State inputUrl: string = 'https://www.harmonyos.com';

// 输入 URL
TextInput({ 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));
})

两个参数:

  • url — 要打开的网址,要带 https:// 前缀
  • showChooser — true 弹出浏览器选择框;false 用系统默认浏览器直接打开
  • 如果用户设备上安装了多个浏览器,传 true 让用户自己选更合适。

    跳转应用市场详情页

    @State inputBundleName: 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());
    })

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

    拉起短信界面

    @State inputPhone: string = '10086';
    @State inputContact: 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'));
    })

    两个参数:

  • phone — 收件人电话号码(必填)
  • 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 加入你的工具库。

    赞(0)
    未经允许不得转载:171主机测评 » HarmonyOS 拉起系统浏览器与短信界面:WantUtil.toWebBrowser 与 startMMS 实战
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址