HarmonyOS javaScriptProxy不支持设置对象属性调用

在webview与h5服务交互,h5端通过javaScriptProxy注册的对象属性(innoPlus.native.getLocationCoordinate)调用HarmonyOS端提供的原生方法失效。

HarmonyOS
21h前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
fox280

可参考如下demo获取对象属性

html 侧代码

<!-- index.html -->
  <!DOCTYPE html>
  <html>
  <body>
  <button type="button" onclick="callArkTS()">Click Me!</button>
  <button type="button" onclick="callArkTS1()">Click Me!</button>
  <p id="demo"></p>
  <p id="demo1"></p>
  <script>
  function callArkTS() {
    let str = testObjName.test();
    document.getElementById("demo").innerHTML = str;
    console.info('ArkTS Hello World! :' + str);
  }
function callArkTS1() {
  let str = testObjName.gettest1();
  document.getElementById("demo1").innerHTML = str;
  console.info('ArkTS Hello World! :' + str);
}
</script>
  </body>
  </html>

应用侧代码

// xxx.ets
import { webview } from '@kit.ArkWeb';

class testClass {
  constructor() {
  }
  test1:string="我是属性!"

  test(): string {
    return '我是方法!';
  }
  gettest1():string{
    return this.test1
  }
}

@Entry
@Component
struct WebComponent {
  webviewController: webview.WebviewController = new webview.WebviewController();
  // 声明需要注册的对象
  @State testObj: testClass = new testClass();
  build() {
    Column() {
      // Web组件加载本地index.html页面
      Web({ src: $rawfile('index.html'), controller: this.webviewController})
        // 将对象注入到web端
        .javaScriptProxy({
          object: this.testObj,
          name: "testObjName",
          methodList: ["test","gettest1"],
          controller: this.webviewController
        })
    }
  }
}
分享
微博
QQ
微信
回复
18h前
相关问题
Refresh组件不支持设置nestedScroll属性
1988浏览 • 1回复 待解决
linear-gradient不支持start,end属性
852浏览 • 1回复 待解决
为什么FA模型不支持进程内对象共享
2059浏览 • 1回复 待解决
HarmonyOS 弱引用不支持自定义对象
73浏览 • 1回复 待解决
Toggle isOn不支持$$?
3浏览 • 1回复 待解决
HarmonyOS 编码集不支持
15浏览 • 1回复 待解决
web组件不支持localstorage
839浏览 • 1回复 待解决
HarmonyOS image不支持mask吗
57浏览 • 1回复 待解决
HarmonyOS Span不支持n换行
47浏览 • 1回复 待解决