#鸿蒙通关秘籍#如何将网页上的Embed标签与原生NodeContainer结合进行同层渲染?

HarmonyOS
2024-12-02 14:22:21
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
墨舞涯CPL

将网页上的Embed标签与原生NodeContainer结合需要特定的步骤,包括设置Web组件、监听生命周期变化、绑定surfaceId等。

  1. 在Web组件中启用同层渲染:

    Web({ src: $rawfile("nativeembed_view.html"), controller: this.browserTabController })
        .backgroundColor('#F1F3F5')
        .zoomAccess(false)
        .enableNativeEmbedMode(true)
    
  2. 处理onNativeEmbedLifecycleChange事件,获取Embed信息并设置NodeController:

    .onNativeEmbedLifecycleChange((embed) => {
        if (embed.status === NativeEmbedStatus.CREATE) {
            this.searchNodeController.setRenderOption({
                surfaceId: embed.surfaceId as string,
                renderType: NodeRenderType.RENDER_TYPE_TEXTURE,
                width: px2vp(embed.info?.width),
                height: px2vp(embed.info?.height)
            });
            this.searchNodeController.rebuild();
        }
    })
    

通过以上步骤实现网页与原生组件的无缝结合。

分享
微博
QQ
微信
回复
2024-12-02 16:47:33
相关问题