# JsView.listenerToAckEvent 事件列表

listenerToAckEvent接口参数含义为:

  • category
    消息分组,可在具体事件描述中查到

  • type
    消息类名,可在具体事件描述中查到

  • id
    消息发出者的识别信息(当一种事件有多个发出者时),
    每个事件各自有自定义信息,可在具体事件描述中查到

  • AckEventListener.AckEventCallback callback
    消息回调

# JS Context reset事件

  • category
    AckEventDefine.CATEGORY_JSC

  • type
    AckEventDefine.TYPE_JS_CONTEXT_LIFECYCLE

发生时机为JsViewInstance.reload()时。
回调bundle中的内容为:

  {
    act: "reset",
    contentId: // int类型的content ID
  }
1
2
3
4

其中,contentId为JS虚拟机的ID,单个进程中存在多个JsView并存场景时,通过此ID来识别是哪个进行Reset行为。此ID可在js中通过window.JsView.getJsContextId() 获得,然后通过JavaInterface接口通知给Java层。

# NativeSharedView位置变更事件

  • category
    AckEventDefine.CATEGORY_VIEW

  • type
    AckEventDefine.TYPE_SHARED_VIEW_LAYOUT

  • id
    JS中<JsvNativeSharedDiv>组件的ID值,通过js调用此组件的 getId 接口回调获取ID, 或者通过组件的 setId 属性来设置一个唯一ID(建议ID中含有通过 window.JsView.getJsContextId() 获得的JS虚拟机ID,用于在多JsView场景下识别)。然后js将此ID通过JavaInterface注册的用户自定义接口通知给java层进行匹配。

该事件的目的是为了跟进JS层面 JsvNativeSharedDiv 高阶组件在屏幕上的绝对位置的变化(top, left, width, height的变化)。 回调bundle中的内容为:

  {
    x: // int类型的left信息
    y: // int类型的top信息
    width: // int类型的width信息
    height: // int类型的height信息
    dw: // designed map, 为js APP 的 AppConfig/jsview.config.js中
        // vendorConfig.designedMap.screenWidth设置值
    order: // int类型, 与同类NativeSharedView的相对图层顺序,数值越大越在上层
    visible:  // int类型, view是否可见,(0:不可见, 1:可见)
    mat4: // native指针类型, view的位置信息的matrix(旋转翻转等效果时使用),
          // 此指针为实时同步接口,当stashedEvent为true时,此指针不可使用
    stashedEvent: // bool类型,false时此key都不会存在。true时标识此消息非实时事件
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
Last Updated: 1/23/2024, 9:19:55 AM