123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- import { router } 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
- }
- export class XWebHelper {
- private constructor() {
- }
- /**
- * 打开web页面,加载h5
- * @param params
- */
- public static openWeb(params: XWebParams): Promise<boolean> {
- 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<boolean> {
- 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}`)
- })
- })
- }
- }
|