原生调用html中的javascript的实现。

原生调用html中的javascript的实现。

HarmonyOS
2024-08-06 18:53:52
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
油炸帕尼尼

html

<!-- index.html -->
<!DOCTYPE html>
<html>
<body>
<button type="button" onclick="callArkTS()">Click Me!</button>
<h1 id="text">这是一个测试信息,默认字体为黑色,调用runJavaScript方法后字体为绿色,调用runJavaScriptCodePassed方法后字体为红色</h1>
<script>
    // 调用有参函数时实现。
    var param = "param: JavaScript Hello World!";
    function htmlTest(param) {
        document.getElementById('text').style.color = 'green';
        console.log(param);
    }
</script>
</body>
</html>

arkTS

import web_webview from '@ohos.web.webview';
@Entry
@Component
struct Index {
  webviewController: web_webview.WebviewController = new web_webview.WebviewController()
  aboutToAppear(): void {
    // clearAllCookiesSync参数表示清除隐私模式(true)或非隐私模式(false)下,webview的所有内存cookies。
    web_webview.WebCookieManager.clearAllCookiesSync(true);
  }

  build() {
    Column() {
      Button('runJavaScript')
        .onClick(() => {
          // 前端页面函数无参时,将param删除。
          this.webviewController.runJavaScript('htmlTest(param)');
        })
      Web({ src: $rawfile("index.html"), controller: this.webviewController
      })
    }
    .width('100%')
    .height('100%')
    .justifyContent(FlexAlign.Center)
  }
}
分享
微博
QQ
微信
回复
2024-08-06 20:26:40
相关问题
HarmonyOS 原生解析html诉求
58浏览 • 1回复 待解决
基于原生实现高级显示效果
632浏览 • 1回复 待解决
如何在ArkTS代码执行HTMLJS函数
2342浏览 • 1回复 待解决