Преглед изворни кода

feat(miniapp): 实现 H5 金沙框架

- 新增 JSSdkClsManager 类,实现 H5 金沙框架的功能
- 添加 RecordData 类,用于记录用户行为数据
- 更新 MiniAppManager,支持选择厂商弹窗的取消事件
- 修改 Index 页面,添加选择厂商弹窗的取消回调- 更新 XWebview 页面,支持自动刷新功能
- 修改 XWebHelper,添加刷新 WebView 的方法- 更新 CaManager,优化存在证书的判断逻辑
徐勤民 пре 2 месеци
родитељ
комит
1ad0b04bf9
2 измењених фајлова са 15 додато и 2 уклоњено
  1. 10 1
      src/main/ets/pages/XWebview.ets
  2. 5 1
      src/main/ets/utils/XWebHelper.ets

+ 10 - 1
src/main/ets/pages/XWebview.ets

@@ -15,6 +15,7 @@ import { XWebManager } from '../utils/XWebManager';
 @Entry({ routeName: 'XWebview' })
 @Component
 export struct XWebview {
+  @LocalStorageLink('refresh_web_base') @Watch('onRefresh') refresh_web_base: number = -1
   // 手机号
   @State headers?: Array<WebHeader> = (router.getParams() as XWebParams).headers
   @State url?: string = (router.getParams() as XWebParams).url
@@ -34,7 +35,15 @@ export struct XWebview {
   dialogController: XDialogController = {} as XDialogController
   ports: webview.WebMessagePort[] = [];
 
+  onRefresh() {
+    if (this.refresh_web_base !== -1) {
+      this.controller.refresh()
+    }
+
+  }
+
   aboutToAppear(): void {
+    SZYXLocalStorageHelper.storage.setOrCreate('refresh_web_base', -1)
     SZYXLocalStorageHelper.storage.setOrCreate(SZYXLocalStorageKeys.XWebViewCLose, undefined)
     webview.WebviewController.setWebDebuggingAccess(true);
     if (this._uuidToHtml) {
@@ -205,7 +214,7 @@ export struct XWebview {
           this.ports = this.controller.createWebMessagePorts();
           this.ports[1].onMessageEvent((result: webview.WebMessage) => {
             if (typeof (result) === 'string') {
-              ToolsHelper.log(result, typeof (result))
+              // ToolsHelper.log(result, typeof (result))
               XWebManager.sendMessage(result)
             }
           })

+ 5 - 1
src/main/ets/utils/XWebHelper.ets

@@ -1,6 +1,6 @@
 import { router, WebHeader } from '@kit.ArkUI';
 import { BusinessError } from '@kit.BasicServicesKit';
-import { LogHelper } from '../../../../Index';
+import { LogHelper, SZYXLocalStorageHelper } from '../../../../Index';
 import { baseEncode } from '../util/base64Util';
 import { ToolsHelper } from './ToolsHelper';
 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> {
     params.url =
       `https://mdtdemo.51trust.com/preview/onlinePreview?url=${baseEncode(params.url)}&watermarkTxt=${encodeURI(params.watermarkTxt ??