feat(miniapp): 实现 H5 金沙框架
- 新增 JSSdkClsManager 类,实现 H5 金沙框架的功能 - 添加 RecordData 类,用于记录用户行为数据 - 更新 MiniAppManager,支持选择厂商弹窗的取消事件 - 修改 Index 页面,添加选择厂商弹窗的取消回调- 更新 XWebview 页面,支持自动刷新功能 - 修改 XWebHelper,添加刷新 WebView 的方法- 更新 CaManager,优化存在证书的判断逻辑
这个提交包含在:
父节点
d55322549b
当前提交
1ad0b04bf9
@ -15,6 +15,7 @@ import { XWebManager } from '../utils/XWebManager';
|
|||||||
@Entry({ routeName: 'XWebview' })
|
@Entry({ routeName: 'XWebview' })
|
||||||
@Component
|
@Component
|
||||||
export struct XWebview {
|
export struct XWebview {
|
||||||
|
@LocalStorageLink('refresh_web_base') @Watch('onRefresh') refresh_web_base: number = -1
|
||||||
// 手机号
|
// 手机号
|
||||||
@State headers?: Array<WebHeader> = (router.getParams() as XWebParams).headers
|
@State headers?: Array<WebHeader> = (router.getParams() as XWebParams).headers
|
||||||
@State url?: string = (router.getParams() as XWebParams).url
|
@State url?: string = (router.getParams() as XWebParams).url
|
||||||
@ -34,7 +35,15 @@ export struct XWebview {
|
|||||||
dialogController: XDialogController = {} as XDialogController
|
dialogController: XDialogController = {} as XDialogController
|
||||||
ports: webview.WebMessagePort[] = [];
|
ports: webview.WebMessagePort[] = [];
|
||||||
|
|
||||||
|
onRefresh() {
|
||||||
|
if (this.refresh_web_base !== -1) {
|
||||||
|
this.controller.refresh()
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
aboutToAppear(): void {
|
aboutToAppear(): void {
|
||||||
|
SZYXLocalStorageHelper.storage.setOrCreate('refresh_web_base', -1)
|
||||||
SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
|
SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
|
||||||
webview.WebviewController.setWebDebuggingAccess(true);
|
webview.WebviewController.setWebDebuggingAccess(true);
|
||||||
if (this._uuidToHtml) {
|
if (this._uuidToHtml) {
|
||||||
@ -205,7 +214,7 @@ export struct XWebview {
|
|||||||
this.ports = this.controller.createWebMessagePorts();
|
this.ports = this.controller.createWebMessagePorts();
|
||||||
this.ports[1].onMessageEvent((result: webview.WebMessage) => {
|
this.ports[1].onMessageEvent((result: webview.WebMessage) => {
|
||||||
if (typeof (result) === 'string') {
|
if (typeof (result) === 'string') {
|
||||||
ToolsHelper.log(result, typeof (result))
|
// ToolsHelper.log(result, typeof (result))
|
||||||
XWebManager.sendMessage(result)
|
XWebManager.sendMessage(result)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
import { router, WebHeader } from '@kit.ArkUI';
|
import { router, WebHeader } from '@kit.ArkUI';
|
||||||
import { BusinessError } from '@kit.BasicServicesKit';
|
import { BusinessError } from '@kit.BasicServicesKit';
|
||||||
import { LogHelper } from '../../../../Index';
|
import { LogHelper, SZYXLocalStorageHelper } from '../../../../Index';
|
||||||
import { baseEncode } from '../util/base64Util';
|
import { baseEncode } from '../util/base64Util';
|
||||||
import { ToolsHelper } from './ToolsHelper';
|
import { ToolsHelper } from './ToolsHelper';
|
||||||
import { XWebManager } from './XWebManager';
|
import { XWebManager } from './XWebManager';
|
||||||
@ -86,6 +86,10 @@ export class XWebHelper {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static refreshWeb() {
|
||||||
|
SZYXLocalStorageHelper.storage.setOrCreate('refresh_web_base', new Date().getTime())
|
||||||
|
}
|
||||||
|
|
||||||
public static openPreview(params: XWebParams): Promise<boolean> {
|
public static openPreview(params: XWebParams): Promise<boolean> {
|
||||||
params.url =
|
params.url =
|
||||||
`https://mdtdemo.51trust.com/preview/onlinePreview?url=${baseEncode(params.url)}&watermarkTxt=${encodeURI(params.watermarkTxt ??
|
`https://mdtdemo.51trust.com/preview/onlinePreview?url=${baseEncode(params.url)}&watermarkTxt=${encodeURI(params.watermarkTxt ??
|
||||||
|
|||||||
正在加载...
在新工单中引用
屏蔽一个用户