logo
当前页

实现悬浮窗

本文将为您介绍,如何在应用程序内实现悬浮窗的效果,显示效果如下。

准备环境

支持音频和视频的 iOS 设备,且为 iOS 15.0 或更高版本。

显示悬浮窗按钮

如需显示悬浮窗按钮,请配置 ZegoUIKitPrebuiltCallConfigtopMenuBarConfigbottomMenuBarConfig,并添加 ZegoMenuBarButtonName.minimizingButtonbottomMenuBarConfig.buttonstopMenuBarConfig.buttons 以显示悬浮窗按钮。

示例代码如下(含通话邀请):

Warning

现实基本通话方式:由于 ViewController 由您自己管理,您需要自己实现 ViewController 的悬浮窗逻辑。

Untitled
//....
ZegoUIKitPrebuiltCallInvitationService.shared.delegate = self
//...
func requireConfig(_ data: ZegoCallInvitationData) -> ZegoUIKitPrebuiltCallConfig {
    if data.type == .voiceCall {
        if (data.invitees?.count ?? 0) > 1 {
            let config = ZegoUIKitPrebuiltCallConfig.groupVoiceCall()
            config.topMenuBarConfig.isVisible = true
            config.topMenuBarConfig.buttons = [.minimizingButton]
            return config
        } else {
            let config = ZegoUIKitPrebuiltCallConfig.oneOnOneVoiceCall()
            config.topMenuBarConfig.isVisible = true
            config.topMenuBarConfig.buttons = [.minimizingButton]
            return config
        }
    } else {
        if (data.invitees?.count ?? 0) > 1 {
            let config = ZegoUIKitPrebuiltCallConfig.groupVideoCall()
            config.topMenuBarConfig.isVisible = true
            config.topMenuBarConfig.buttons = [.minimizingButton]
            return config
        } else {
            let config = ZegoUIKitPrebuiltCallConfig.oneOnOneVideoCall()
            config.topMenuBarConfig.isVisible = true
            config.topMenuBarConfig.buttons = [.minimizingButton]
            return config
        }
    }
}
// ...
1
Copied!

完成上述步骤后,视频通话窗口可以通过悬浮窗的形式进行展示。

常见问题

Previous

集成 Apple VoIP

Next

API