HarmonyOS基本UI封装——Web组件封装(九)


highlight: arduino-light
theme: cyanosis


前言

文章系列

简介

鸿蒙基本库封装,提升鸿蒙开发效率

安装

ohpm install @peakmain/library

1. 跳转到H5页面

导入依赖

import {JumpUtils}from '@peakmain/library'

1.1 跳转H5页面,携带token

public static jumpToH5(url: string, showTitle: boolean = true):void

参数

参数 参数类型 是否必填 说明
url string 跳转url
showTitle boolean 是否显示导航栏,默认为true,表示显示

1.2 跳转到H5页面,携带token的同时携带version

public static jumpToH5AddVersion(url: string, showTitle: boolean = true):void

参数

参数 参数类型 是否必填 说明
url string 跳转url
showTitle boolean 是否显示导航栏,默认为true,表示显示

1.3 跳转H5,拼接若干个参数

jumpToH5AddParams(url: string, showTitle: boolean = true, params: Map<string, string | number | boolean>,isAddToken: boolean = false):void

参数

参数 参数类型 是否必填 说明
url string 跳转url
showTitle boolean 是否显示导航栏,默认为true,表示显示
params Map<string, string | number | boolean> 需要拼接的参数
isAddToken boolean 是否拼接token,默认是false

1.4 为url添加版本号

static addVersionToUrl(url: string):string

参数

参数 参数类型 是否必填 说明
url string 跳转url

1.5 为url添加token

static addTokenToUrl(url: string):string

参数

参数 参数类型 是否必填 说明
url string 跳转url

2. 设置webView的userAgent

导入依赖

import {InitUtils} from '@peakmain/library';

方法

public setWebViewUserAgent(userAgent: string, isSuffix: boolean = true):InitUtils

参数

参数 参数类型 是否必填 说明
userAgent string 自定义的userAgent
isSuffix boolean 是否将自定义的userAgent添加到已有系统userAgent后面,默认是true

示例代码

 InitUtils.getInstance(this.context).setWebViewUserAgent(` AtourBrowser/${appVer}/Harmony`)

3. 拦截H5发的协议,替换成自己的方法

H5发的协议,通常为以下示例格式

peakmain://page/login

对应的是

scheme://authority/path

我们需要拦截到该协议,替换成我们自己的方法

3.1 定义协议scheme和authority

类上添加@Handle

参数

参数 参数类型 是否必填 说明
scheme string 访问资源的协议或机制
authority string 域名或 IP 地址

定义协议的Path

方法上添加@HandleMethod

参数

参数 参数类型 是否必填 说明
path string 资源的具体位置或路径

返回值

返回值 类型 说明
HandleResult enum NOT_CONSUME: 系统默认处理
CONSUMED:自己已经处理了,不交给系统处理
CONSUMING:正在处理中,不交给系统处理

示例代码

@Handle("peakmain","page")
export class PageHandler {
  @HandleMethod("/login")
  login(): HandleResult {
    LogUtils.error("进入登录页面")
    return HandleResult.CONSUMED
  }

  @HandleMethod("/jumpToWhere")
  jumpToWhere():HandleResult{
    LogUtils.error("进入jumpToWhere");
    return HandleResult.CONSUMED;
  }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容