HarmonyOS web组件什么事件加载jsbridge方法?

ArkTS中的web组件在什么事件中加载jsbridge方法?在文档中没有找到,或者提供下相关文档地址。

HarmonyOS
2024-11-07 11:19:55
779浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
zbw_apple

​可以尝试在onpagebegin 或者onpageende 生命周期中进行注册:

应用侧代码如下:​

// xxx.ets 
import web_webview from '@ohos.web.webview'; 
import business_error from '@ohos.base'; 
 
class testClass { 
  constructor() { 
  } 
 
  test(): string { 
    return "ArkUI Web Component"; 
  } 
 
  toString(): void { 
    console.log('Web Component toString'); 
  } 
} 
 
@Entry 
@Component 
struct Index { 
  webviewController: web_webview.WebviewController = new web_webview.WebviewController(); 
  @State testObj: testClass = new testClass(); 
 
  build() { 
    Column() { 
      Button('refresh') 
        .onClick(() => { 
          try { 
            this.webviewController.refresh(); 
          } catch (error) { 
            let e: business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); 
          } 
        }) 
      Web({ src: $rawfile('test.html'), controller: this.webviewController }).onPageEnd(()=>{ 
        try { 
          this.webviewController.registerJavaScriptProxy(this.testObj, "testObjName", ["test", "toString"]); 
        } catch (error) { 
          let e: business_error.BusinessError = error as business_error.BusinessError; 
          console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); 
        } 
      }) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

html代码如下:

// xxx.ets 
import web_webview from '@ohos.web.webview'; 
import business_error from '@ohos.base'; 
 
class testClass { 
  constructor() { 
  } 
 
  test(): string { 
    return "ArkUI Web Component"; 
  } 
 
  toString(): void { 
    console.log('Web Component toString'); 
  } 
} 
 
@Entry 
@Component 
struct Index { 
  webviewController: web_webview.WebviewController = new web_webview.WebviewController(); 
  @State testObj: testClass = new testClass(); 
 
  build() { 
    Column() { 
      Button('refresh') 
        .onClick(() => { 
          try { 
            this.webviewController.refresh(); 
          } catch (error) { 
            let e: business_error.BusinessError = error as business_error.BusinessError; 
            console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); 
          } 
        }) 
      Web({ src: $rawfile('test.html'), controller: this.webviewController }).onPageEnd(()=>{ 
        try { 
          this.webviewController.registerJavaScriptProxy(this.testObj, "testObjName", ["test", "toString"]); 
        } catch (error) { 
          let e: business_error.BusinessError = error as business_error.BusinessError; 
          console.error(`ErrorCode: ${e.code}, Message: ${e.message}`); 
        } 
      }) 
    } 
  } 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

可以把registerJavaScriptProxy的使用放在onControllerAttached这个生命周期中,放在该生命周期里不需要refresh即可生效。

分享
微博
QQ
微信
回复
2024-11-07 17:38:37


相关问题
HarmonyOS web组件jsBridge通信
814浏览 • 1回复 待解决
HarmonyOS web组件jsbridge通信demo
575浏览 • 1回复 待解决
需要web组件JSBridge通信的demo
920浏览 • 1回复 待解决
HarmonyOS web组件 加载web页面异常
1232浏览 • 1回复 待解决
HarmonyOS Web组件加载太慢
647浏览 • 1回复 待解决
HarmonyOS web组件加载pdf问题
1537浏览 • 1回复 待解决
HarmonyOS Web组件UserAgent判断方法
745浏览 • 1回复 待解决
HarmonyOS Web组件加载pdf预览
1232浏览 • 1回复 待解决
HarmonyOS Web组件无法加载页面
856浏览 • 1回复 待解决
HarmonyOS web组件加载url失败
1474浏览 • 1回复 待解决
HarmonyOS web组件加载页面空白
1105浏览 • 1回复 待解决
HarmonyOS web组件如何加载本地字库?
1241浏览 • 1回复 待解决
HarmonyOS 使用Web组件加载页面示例
1276浏览 • 1回复 待解决
HarmonyOS Web组件加载URL显示空白
793浏览 • 1回复 待解决