HarmonyOS web组件的runJavaScript方法执行失败

HarmonyOS
2天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

runJavaScript调用H5参考示例:

import { webview } from '@kit.ArkWeb';

interface socketMessage {
  type: string;
  msg?: string | number;
}

@Entry
@Component
struct WebComponent {
  controller: webview.WebviewController = new webview.WebviewController();
  @State screenShareMsg:socketMessage = {
    type: 'test',
    msg: 'test'
  }

  build() {
    Column() {
      Button('点击调用H5').onClick(()=>{
        // 传递数据  JSON.stringify
        console.log("SocketMsg",JSON.stringify(this.screenShareMsg))
        let str=JSON.stringify(this.screenShareMsg)
        // 调用H5
        this.controller.runJavaScript(`handleMsg(${str})`)

      })
      Web({ src: $rawfile('index.html'), controller: this.controller })
        .javaScriptAccess(true)
          // 检测H5打印数据
        .onConsole((event) => {
          if (event) {
            console.log("onConsole",event.message.getMessage())
          }
          return false
        })

    }
  }
}
<!-- index.html -->
  <!DOCTYPE html>
  <html>
  <meta charset="utf-8">
  <body>
  <p id="p1">hello world </p>
  </body>
  <script type="text/javascript">
  function handleMsg(msg) {
    //获取对象数据   :  "123test"
    console.log('123'+msg['type'])
  }
  </script>
  </html>
分享
微博
QQ
微信
回复
2天前
相关问题
HarmonyOS Scroll回调方法执行改变
190浏览 • 1回复 待解决
HarmonyOS runJavaScript执行时序
377浏览 • 1回复 待解决
如何通过AOP统计方法执行时间
774浏览 • 1回复 待解决
DevEco无法执行Previewer
704浏览 • 1回复 待解决
HarmonyOS Web runJavaScript 如何传参数
186浏览 • 1回复 待解决
ForEach在真机上无法执行
2087浏览 • 1回复 待解决
HarmonyOS taskpool无法执行C++代码
238浏览 • 1回复 待解决
HarmonyOS web组件加载url失败
724浏览 • 1回复 待解决
HarmonyOS Web组件UserAgent判断方法
204浏览 • 1回复 待解决