HarmonyOS 鸿蒙Next中arkWeb组件与h5页面做交互(三)

HarmonyOS 鸿蒙Next中arkWeb组件与h5页面做交互(三)

  1. 在提供的demo中,运行,点击‘未来之城 向“新而生” ’,进入DCNewsWebView页面
  2. 希望DCJSBridge文件中,与前端的交互方法postSubjectData、comment,该交互方法已在web组件中注入,但目前无法进行调用,请帮忙分析原因
  3. postSubjectData、comment这两方法,前端同事说在进入DCNewsWebView中的加载webURL成功后,前端页面会执行,鸿蒙原生需要拿取postSubjectData、comment这两方法的回调内容
  4. postSubjectData、comment这交互方法的相关js调用文件在entry/src/main/resources/rawfile/nativeapi.js文件中
  5. 请帮忙分析postSubjectData、comment方法为啥不调用

更多关于HarmonyOS 鸿蒙Next中arkWeb组件与h5页面做交互(三)的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

前端页面中没有objTestName方法,导致注入过去的js方法没有调用,排查到是this.controller.runJavaScript(this.code)里执行的js脚本没有生效,如何修改方法名Hybrid.viewobjTestName还是需要您那边的前端同事帮忙看下执行一段怎么样的js脚本才能生效

更多关于HarmonyOS 鸿蒙Next中arkWeb组件与h5页面做交互(三)的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,arkWeb组件与H5页面的交互主要通过JavaScript API实现。arkWeb组件是鸿蒙系统提供的用于加载和显示H5页面的控件,支持与H5页面进行双向通信。

  1. H5页面调用Native方法:通过window.hilog对象,H5页面可以调用Native端定义的方法。Native端需要在WebView中注册JavaScript接口,例如:

    webview.getWebViewClient().setJavaScriptInterface(new JavaScriptInterface());
    

    H5页面可以通过window.hilog.methodName()调用Native方法。

  2. Native调用H5页面方法:Native端可以通过WebViewevaluateJavascript方法执行JavaScript代码,调用H5页面中定义的方法。例如:

    webview.evaluateJavascript("javascript:methodName()", null);
    
  3. 事件监听:arkWeb组件支持监听H5页面的事件,如页面加载完成、页面错误等。通过WebViewClient可以监听这些事件并执行相应的操作。

  4. 数据传递:通过JavaScript接口,H5页面和Native端可以传递数据。H5页面可以通过window.hilog对象传递数据给Native端,Native端也可以通过evaluateJavascript方法传递数据给H5页面。

  5. 页面控制:arkWeb组件提供了一系列控制H5页面的方法,如前进、后退、刷新等,通过这些方法可以控制H5页面的导航行为。

总结来说,arkWeb组件与H5页面的交互主要通过JavaScript API实现,支持双向通信、事件监听、数据传递和页面控制等功能。

在HarmonyOS鸿蒙Next中,通过arkWeb组件与H5页面交互时,可以使用postMessage方法实现双向通信。首先,在arkWeb组件中注入JavaScript接口,允许H5页面调用原生方法。其次,通过onMessage事件监听H5页面的消息,处理并返回数据。H5页面则通过window.postMessage发送消息,并监听message事件接收响应。这种方式确保了原生与H5之间的高效、安全通信。

回到顶部