Compartir vía


Personalización de la barra de botones

Para implementar acciones personalizadas o modificar el diseño actual de botones, puede interactuar con la API de la biblioteca de interfaz de usuario nativa. Esta API implica definir configuraciones de botones personalizadas, especificar acciones y administrar las acciones actuales de la barra de botones. La API proporciona métodos para agregar acciones personalizadas y quitar botones existentes, todos los cuales son accesibles a través de llamadas de función sencillas.

Esta funcionalidad proporciona un alto grado de personalización y garantiza que la interfaz de usuario siga siendo coherente con el diseño general de la aplicación.

Requisitos previos

Configuración de la característica

Quitar botones

CallCompositeCallScreenControlBarOptions: ofrece la flexibilidad de personalizar la barra de botones mediante la eliminación de botones específicos, como la cámara, el micrófono y los controles de audio. Esta API le permite adaptar la interfaz de usuario según sus requisitos específicos de la aplicación y el diseño de la experiencia del usuario. Simplemente establezca el visible o el enabled en false para que el CallCompositeButtonViewData oculte o deshabilite el botón.

val controlBarOptions = CallCompositeCallScreenControlBarOptions()

val cameraButton = CallCompositeButtonViewData()
    .setVisible(false)

controlBarOptions.setCameraButton(cameraButton)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

El botón se puede actualizar después de iniciar la llamada compuesta.

cameraButton.setVisible(true)

Agregar acciones personalizadas

Call composite usa iconos de la interfaz de usuario de Fluent. Puede descargar los iconos directamente del repositorio de GitHub de la interfaz de usuario de Fluent e incorporarlos al proyecto según sea necesario. Este enfoque garantiza la coherencia visual entre todos los elementos de la interfaz de usuario, lo que mejora la experiencia general del usuario.

val controlBarOptions = CallCompositeCallScreenControlBarOptions()

controlBarOptions.setCustomButtons(
    listOf(
        CallCompositeCustomButtonViewData(
            "customButtonId",
            R.drawable.my_button_image,
            "My button",
            fun(it: CallCompositeCustomButtonClickEvent) {
                // Process my button onClick
            },
        )
    )
)

val callScreenOptions = CallCompositeCallScreenOptions()
    .setControlBarOptions(controlBarOptions)

val localOptions = CallCompositeLocalOptions()
    .setCallScreenOptions(callScreenOptions)

val callComposite = CallCompositeBuilder()
    .build()

callComposite.launch(context, locator, localOptions)

De forma similar a los botones proporcionados Call composite, los botones personalizados son actualizables después del inicio.

customButton.setVisible(true)

Quitar o deshabilitar botones

CallScreenControlBarOptions: ofrece la flexibilidad de personalizar la barra de botones mediante la eliminación de botones específicos, como la cámara, el micrófono y los controles de audio. Esta API le permite adaptar la interfaz de usuario según sus requisitos específicos de la aplicación y el diseño de la experiencia del usuario. Simplemente establezca el visible o el enabled en false para que el ButtonViewData oculte o deshabilite el botón.

let cameraButton = ButtonViewData(visible: false)

let callScreenControlBarOptions = CallScreenControlBarOptions(
    cameraButton: cameraButton
)

let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

El botón se puede actualizar después de iniciar la llamada compuesta.

cameraButton.visible = true

Agregar acciones personalizadas

Call composite usa iconos de la interfaz de usuario de Fluent. Puede descargar los iconos directamente del repositorio de GitHub de la interfaz de usuario de Fluent e incorporarlos al proyecto según sea necesario. Este enfoque garantiza la coherencia visual entre todos los elementos de la interfaz de usuario, lo que mejora la experiencia general del usuario.

let customButton = CustomButtonOptions(image: UIImage(named: "...")!,
                                       title: "My button") {_ in
    // Process my button onClick
}

let callScreenControlBarOptions = CallScreenControlBarOptions(
    customButtons: [customButton]
)

let callScreenOptions = CallScreenOptions(controlBarOptions: callScreenControlBarOptions)
let localOptions = LocalOptions(callScreenOptions: callScreenOptions)

let callComposite = CallComposite(credential: credential)
callComposite.launch(locator: .roomCall(roomId: "..."), localOptions: localOptions)

De forma similar a los botones proporcionados Call composite, los botones personalizados son actualizables después del inicio.

customButton.enabled = true

Pasos siguientes