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

246 阅读3分钟

前言

文章系列

简介

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

安装

ohpm install @peakmain/library

1. 跳转到H5页面

导入依赖

import {JumpUtils}from '@peakmain/library'

1.1 跳转H5页面,携带token

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

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

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

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

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

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

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

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

1.4 为url添加版本号

static addVersionToUrl(url: string):string

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

1.5 为url添加token

static addTokenToUrl(url: string):string

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

2. 设置webView的userAgent

导入依赖

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

方法

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

参数
参数参数类型是否必填说明
userAgentstring自定义的userAgent
isSuffixboolean是否将自定义的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

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

定义协议的Path

方法上添加@HandleMethod

参数
参数参数类型是否必填说明
pathstring资源的具体位置或路径
返回值
返回值类型说明
HandleResultenumNOT_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;
  }
}