import { router, WebHeader } from '@kit.ArkUI'; import { BusinessError } from '@kit.BasicServicesKit'; import { LogHelper } from '../../../../Index'; import { baseEncode } from '../util/base64Util'; import { ToolsHelper } from './ToolsHelper'; import { XWebManager } from './XWebManager'; const XWebview = import('../pages/XWebview'); export interface XWebController { sendMessage: (message: string) => void } export interface XWebParams { url?: string zoomAccess?: boolean content?: string title?: string showMenu?: boolean closeTag?: string watermarkTxt?: string _uuid?: string _uuidToHtml?: string onMessage?: (message: string) => void controller?: XWebController headers?: Array } export class XWebHelper { private constructor() { } /** * 打开web页面,加载h5 * @param params */ public static openWeb(params: XWebParams): Promise { if (params.onMessage) { params._uuid = XWebManager.addOnMessage(params.onMessage) } if (params.controller) { params._uuidToHtml = ToolsHelper.getUuid() params.controller.sendMessage = (msg) => { XWebManager.sendMessageToHtml(msg) } } return new Promise((resolve) => { router.pushNamedRoute({ name: 'XWebview', params: params }, router.RouterMode.Single).then(() => { LogHelper.info('Succeeded in jumping to the XWebview page.') resolve(true) }).catch((err: BusinessError) => { resolve(false) LogHelper.error(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`) ToolsHelper.showMessage(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`) }) }) } public static openPreview(params: XWebParams): Promise { params.url = `https://mdtdemo.51trust.com/preview/onlinePreview?url=${baseEncode(params.url)}&watermarkTxt=${encodeURI(params.watermarkTxt ?? '')}` return new Promise((resolve) => { router.pushNamedRoute({ name: 'XWebview', params: params }, router.RouterMode.Single).then(() => { LogHelper.info('Succeeded in jumping to the XWebview page.') resolve(true) }).catch((err: BusinessError) => { resolve(false) LogHelper.error(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`) ToolsHelper.showMessage(`Failed to jump to the second page.Code is ${err.code}, message is ${err.message}`) }) }) } }