HarmonyOS Web与JavaScript交互

在与H5页面进行交互时,H5端调用本地方法时没有将本地方法绑定到Window,无法使用javaScriptProxy方法进行交互

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

目前没有可以直接把方法放到 window对象 可以配合注册js方法【javaScriptProxy】和执行脚本方法【runJavaScript】,来完成在window对象注册方法, 具体参考下面的demo

// index.html 代码
<!-- index.html -->
  <!DOCTYPE html>
  <html>
  <body>

  <div style="font-size:40px">
  名称:<input id="nameInput" type="text">
  <br/>
  <br/>
  年龄:<input id="ageInput" type="text">
  <br/>
  <br/>
  <button type="button" onclick="callArkTS()">提交</button>
  <p id="demo"></p>
  </div>
  <script>
  function callArkTS() {
    let str = window.demno();
    document.getElementById("demo").innerHTML = str;
    let name = document.getElementById("nameInput").value;
    let age = document.getElementById("ageInput").value;
    window.setData(name, age);
  }
  </script>
  </body>
  </html>
// xxx.ets文件
import webview from '@ohos.web.webview';
import router from '@ohos.router';

class testClass {
  constructor() {
  }
  test(): string {
    return 'ArkTS Hello World!';
  }
  setData(name: string, age: string): void {
    router.pushUrl({url: 'pages/Index', params: {
      name,
      age,
    }})
  }
}
@Entry
@Component
struct H5Page {
  controller: webview.WebviewController = new webview.WebviewController();
  @State testObj: testClass = new testClass();

  // 方法挂载到 window对象的代码块, 再onPageBegin方法中执行
  code:string =`
  window.test = testObjName.test
  window.setData = (name, age) => {
      testObjName.setData(name, age);
    };
  window.demno = () => {
      console.log('

分享
微博
QQ
微信
回复
1天前
相关问题
HarmonyOS 系统web交互
22浏览 • 1回复 待解决
HarmonyOS Web js原生交互
36浏览 • 1回复 待解决
HarmonyOS webH5交互
744浏览 • 1回复 待解决
HarmonyOS webH5两端数据交互
930浏览 • 1回复 待解决
HarmonyOSweb内嵌vue页面的交互问题
602浏览 • 1回复 待解决
HarmonyOS web交互示例
23浏览 • 1回复 待解决
HarmonyOS WebViewjs交互
82浏览 • 1回复 待解决
HarmonyOS 原生js交互
247浏览 • 1回复 待解决
HarmonyOS web端原生交互
33浏览 • 1回复 待解决
HarmonyOS web和js交互
204浏览 • 1回复 待解决
HarmonyOS RN如何Native交互
225浏览 • 1回复 待解决
HarmonyOS web组件和js交互
163浏览 • 1回复 待解决
HarmonyOS SIM交互相关接口
36浏览 • 1回复 待解决
HarmonyOS vue框架ArkTS的交互
65浏览 • 1回复 待解决
HarmonyOS web和原生交互的demo
80浏览 • 1回复 待解决
JavaScript、TypeScript 的区别
205浏览 • 0回复 待解决
HarmonyOS ArkTSC/C++的交互
776浏览 • 1回复 待解决