jsBridge中如何正确使用this

暴露给js的对象内部this 值为undefined

class testClass { 
 constructor() { 
 } 
 test(text: string): string { 
 return this.text; 
 } 
 }
HarmonyOS
2024-05-20 20:46:50
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
milchcow

可以使用箭头函数,这样this就会指向类的实例。

参考代码:

import web_webview from '@ohos.web.webview'; 
  
class testclass { 
text:string 
constructor() { 
this.text = '测试文本' 
} 
test = (): string => { 
return this.text; 
} 
} 
  
@Entry 
@Component 
struct WebComponent { 
webviewController: web_webview.WebviewController = new web_webview.WebviewController(); 
// 声明需要注册的对象 
@State testObj: testClass = new testClass(); 
  
build() { 
Column() { 
// web组件加载本地index.html页面 
Web({ src: $rawfile('index.html'), controller: this.webviewController}) 
.javaScriptAccess(true) 
// 将对象注入到web端 
.javaScriptProxy({ 
object: this.testObj, 
name: "testObjName", 
methodList: ["test"], 
controller: this.webviewController 
}) 
} 
} 
}
分享
微博
QQ
微信
回复
2024-05-21 16:23:47
相关问题
使用jsBridge拉起弹窗
483浏览 • 1回复 待解决
Web如何正确设置userAgent?
367浏览 • 1回复 待解决
js api select组件如何使用
5618浏览 • 2回复 已解决
ArkTSglobalThis无法使用如何替换
598浏览 • 1回复 待解决
JS如何使用Promise和async await
177浏览 • 1回复 待解决
GitLab如何使用需要密码的redis?
682浏览 • 1回复 待解决
鸿蒙图片资源在Java代码如何使用
6602浏览 • 1回复 待解决
Native工程如何使用其他三方so库
807浏览 • 1回复 待解决
如何在webview中使用H5的alert
519浏览 • 1回复 待解决