HarmonyOS 鸿蒙Next 使用javaScriptProxy把js端的参数传递给ArkTS端 数据更新很慢为啥呢
HarmonyOS 鸿蒙Next 使用javaScriptProxy把js端的参数传递给ArkTS端 数据更新很慢为啥呢 大家好,我使用javaScriptProxy把js端的参数传递给ArkTS端,发现js那边触发事件执行函数后,ui这端接收更新数据要好久,这个为啥呢,怎么处理呢
需要更多信息了解实现细节!
更多关于HarmonyOS 鸿蒙Next 使用javaScriptProxy把js端的参数传递给ArkTS端 数据更新很慢为啥呢的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
js端:
//点击获取坐标,发送给arkts
function pinchZoomSlideByAndroid(){
//{type, target, point,pixel}
map.addEventListener("touchstart", function (event){
let currTouchPointCoordLon = event.point.lng
let currTouchPointCoordLat = event.point.lat
//调用ArkTS端函数,更新触摸点坐标
MapWebObjectName.SetCurrTouchPointCoord(currTouchPointCoordLon, currTouchPointCoordLat);
})
}
arkts端:
.javaJavaScriptProxy({
object: this,
name: "MapWebObjectName",
methodList: ["SetCurrTouchPointCoord"],
controller: this.webviewController
})
/**
* html端调用该函数,更新触摸处的坐标
*/
SetCurrTouchPointCoord = (lng: string, lat: string): void => {
try {
console.log(LOG_TAG, 'MapPage SetCurrTouchPointCoord: ', lng, lat);
this.currTouchPointCoordLng = lng.toString();
this.currTouchPointCoordLat = lat.toString();
}
catch (error) {
console.error(LOG_TAG, 'MapPage SetCurrTouchPointCoord failed with ' + error)
}
}
没遇到过这种问题,可以提供下复现问题的最小demo吗?
不太好吧直接贴代码,有时候会出现问题。
js端:
//点击获取坐标,发送给arkts
function pinchZoomSlideByAndroid(){
//{type, target, point,pixel}
map.addEventListener("touchstart", function (event){
let currTouchPointCoordLon = event.point.lng
let currTouchPointCoordLat = event.point.lat
//调用ArkTS端函数,更新触摸点坐标
MapWebObjectName.SetCurrTouchPointCoord(currTouchPointCoordLon, currTouchPointCoordLat);
})
}
arkts端:
.javaScriptProxy({
object: this,
name: "MapWebObjectName",
methodList: ["SetCurrTouchPointCoord"],
controller: this.webviewController
})
/**
* html端调用该函数,更新触摸处的坐标
*/
SetCurrTouchPointCoord = (lng: string, lat: string): void => {
try {
console.log(LOG_TAG, 'MapPage SetCurrTouchPointCoord: ', lng, lat);
this.currTouchPointCoordLng = lng.toString();
this.currTouchPointCoordLat = lat.toString();
}
catch (error) {
console.error(LOG_TAG, 'MapPage SetCurrTouchPointCoord failed with ' + error)
}
}
HarmonyOS 鸿蒙Next 在使用 javascriptProxy
将 JS 端参数传递给 ArkTS 端时,如果遇到数据更新很慢的问题,可能的原因包括:
-
通信开销:JS 与 ArkTS 之间的通信可能涉及一定的开销,特别是在频繁传递大量数据时。这可能导致数据更新显得缓慢。
-
处理效率:ArkTS 端接收数据后的处理逻辑可能不够高效,导致数据更新延迟。
-
UI 渲染:如果数据更新涉及 UI 渲染,UI 线程的繁忙程度也可能影响数据更新的速度。
-
资源管理:系统资源(如 CPU、内存)的紧张也可能导致数据更新变慢。
-
同步/异步问题:如果数据传递和处理是异步进行的,但更新 UI 是同步操作,可能会导致等待时间增加。
如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html,