Fastboard iOS SDK API 参考
本页提供声网 Fastboard SDK(iOS)的 Swift API 参考。
Fastboard 类
createFastRoom
public class func createFastRoom(withFastRoomConfig config: FastRoomConfiguration)
创建 FastRoom
实例。
参数
config
:FastRoom
实例的配置。详见 FastRoomConfiguration。
返回
方法调用成功时返回 FastRoom
对象。
FastRoomConfiguration
FastRoomConfiguration
类,提供初始化 FastRoomConfiguration
实例的方法。
public init(appIdentifier: String,
roomUUID: String,
roomToken: String,
region: Region,
userUID: String,
userPayload: FastUserPayload? = nil)
参数
appIdentifier
:String。互动白板项目的 AppIdentifier。详见获取互动白板项目的安全密钥。roomUUID
:String。房间的 UUID,即房间的唯一标识符。详见创建房间请求成功后响应包体中uuid
参数的值。roomToken
:String。房间的 Room Token,用于加入房间时的用户鉴权。可以通过以下方式获取:- 调用生成 Room Token。
- 在 app 服务端用代码生成,详见在 app 服务端生成 Token。
region
:数据中心。详见Region
。userUID
:String。用户的 UID,即用户的唯一标识符,字符串格式,不能超过 1024 字节。请确保同一房间内每个用户的 UID 唯一。userPayload
:用户光标显示的用户信息,包括用户的昵称和头像。详见FastUserPayload
。
Region
数据中心,包含以下枚举:
CN
:中国杭州,服务区覆盖东亚、东南亚、以及其他数据中心未覆盖的地区。US
:美国硅谷,服务区覆盖北美洲、南美洲。SG
:新加坡,服务区覆盖新加坡、东亚、东南亚。IN
:印度孟买,服务区覆盖印度。EU
:欧洲(法兰克福),服务区覆盖欧洲。
FastUserPayload
public class FastUserPayload: NSObject {
let nickName: String?
let avatar: String?
var dic: [String: String] {
var r = [String: String]()
if let nickName = nickName { r["nickName"] = nickName }
if let avatar = avatar { r["avatar"] = avatar }
return r
}
public init(nickName: String) {
self.nickName = nickName
self.avatar = nil
super.init()
}
public init(nickName: String, avatar: String) {
self.nickName = nickName
self.avatar = avatar
super.init()
}
}
FastUserPayload
类,用于储存光标上显示的用户信息,包含以下属性:
-
nickName
:String。(可选)用户光标上显示的用户昵称。 -
avatar
:String。(可选)用户光标上显示的用户头像,应传入头像对应的 URL 地址。
FastRoom 类
FastRoom
类提供管理互动白板实时房间的方法。
joinRoom
public func joinRoom(completionHandler: ((Result<WhiteRoom, FastRoomError>)->Void)? = nil)
加入白板房间。
注意
该方法需要在创建FastRoom
对象后调用。
参数
completionHandler
:方法调用结果回调。传入nil
,表示不注册回调。
disconnectRoom
public func disconnectRoom()
离开白板房间。
insertImg
public func insertImg(_ src: URL, imageSize: CGSize)
插入图片。
该方法可以将指定的网络图片插入并展示到当前白板页面上。
参数
src
:String。图片的 URL 地址。请确保 app 客户端能够访问该 URL,否则图片无法正常展示。imageSizewidth
:CGSize。图片的尺寸。
insertMedia
public func insertMedia(_ src: URL, title: String, completionHandler: ((String)->Void)? = nil)
在白板子窗口中插入并播放音视频。
参数
src
:String。音视频文件的 URL 地址。请确保 app 客户端能够访问该 URL,否则无法正常加载音视频文件。title
:String。窗口标题。completionHandler
:方法调用结果回调。传入nil
,表示不注册回调。
insertPptx
public func insertPptx(
uuid: String,
url: String,
title: String,
completionHandler: ((String)->Void)? = nil
)
在白板子窗口中插入并展示动态文档。
动态文档指通过声网互动白板文档转换服务,由 PPTX 格式的文件转换成的 HTML 网页。转换后的文件会保留源文件里的动画效果。
成功发起文档转换任务并调用查询文档转换任务进度获取文档转换结果后,可以调用该方法并传入获取的文档转换结果,SDK 会自动创建子窗口,插入并分页展示转换后的文档。
参数
uuid
:转换任务的 uuid,转换任务的唯一标识符。url
:转换结果文件地址前缀路径。title
:插入时的窗口标题。completionHandler
:方法调用结果回调。传入nil
,表示不注册回调。
insertStaticDocument
public func insertStaticDocument(_ pages: [WhitePptPage],
title: String,
completionHandler: ((String)->Void)? = nil)
在白板子窗口中插入并展示静态文档。
静态文档指通过声网互动白板文档转换服务,由 PPT、PPTX、DOC、DOCX、PDF 格式的文件转换成的 PNG、JPG/JPEG 格式的静态图片。
成功发起文档转换任务并调用查询文档转换任务进度获取文档转换结果后,可以调用该方法并传入获取的文档转换结果,SDK 会自动创建子窗口,插入并分页展示转换后的文档。
参数
pages
:转换后的文件列表。详见查询文档转换任务进度请求成功后返回的响应包体中convertedFileList
参数的值。title
:窗口标题。completionHandler
:方法调用结果回调。传入nil
,表示不注册回调。
followSystemPencilBehavior
public static var followSystemPencilBehavior
(仅适用于 iPad)设置使用白板时, Apple Pencil 的行为是否跟随系统默认设置:
YES
:跟随系统默认设置。在该状态下,用户可以使用 Apple Pencil 的系统默认功能操作白板,例如,双击切换当前工具为橡皮擦,双击显示调色板,使用 Apple Pencil 涂鸦等。NO
:不跟随系统默认设置。在该状态下,Apple Pencil 的系统默认功能不可用。
FastRoomThemeManager 类
FastRoomThemeManager
类提供设置白板用户界面主题的方法。
apply
public func apply(_ theme: FastRoomThemeAsset)
应用白板主题。
Fastboard SDK 在 iOS 13.0 或以上版本上默认跟随系统的主题设置,在早于 iOS 13.0 版本上默认使用浅色主题。如果默认的主题设置无法满足你的需要,你可以调用该方法应用 SDK 提供的预定义主题或自定义主题。
参数
theme
:白板主题.- 预定义主题:
FastRoomDefaultTheme.defaultLightTheme
:浅色主题。FastRoomDefaultTheme.defaultDarkTheme
:暗色主题。FastRoomDefaultTheme.defaultAutoTheme
:自动主题,即跟随系统主题设置。该选项仅适用于 iOS 13.0 或以上版本。
- 自定义主题:详见 FastRoomThemeAsset。
- 预定义主题:
示例
-
应用预定义的暗色主题:
SwiftFastRoomThemeManager.shared.apply(FastRoomDefaultTheme.defaultDarkTheme)
-
应用自定义主题:
Swiftlet white = FastRoomWhiteboardAssets(whiteboardBackgroundColor: .green, containerColor: .yellow)
let control = FastRoomControlBarAssets(backgroundColor: .blue, borderColor: .gray, effectStyle: .init(style: .regular))
let panel = FastRoomPanelItemAssets(normalIconColor: .black, selectedIconColor: .systemRed, highlightBgColor: .cyan, subOpsIndicatorColor: .yellow, pageTextLabelColor: .orange)
let theme = FastRoomThemeAsset(whiteboardAssets: white, controlBarAssets: control, panelItemAssets: panel)
FastRoomThemeManager.shared.apply(theme)
FastRoomThemeAsset
白板主题样式。
open class FastRoomThemeAsset: NSObject {
@objc
public init(whiteboardAssets: FastRoomWhiteboardAssets,
controlBarAssets: FastRoomControlBarAssets,
panelItemAssets: FastRoomPanelItemAssets) {
self.whiteboardAssets = whiteboardAssets
self.controlBarAssets = controlBarAssets
self.panelItemAssets = panelItemAssets
}
@objc
open var whiteboardAssets: FastRoomWhiteboardAssets
@objc
open var controlBarAssets: FastRoomControlBarAssets
@objc
open var panelItemAssets: FastRoomPanelItemAssets
}
FastRoomThemeAsset
类包含如下属性:
whiteboardAssets
:白板的样式。详见 FastRoomWhiteboardAssets。controlBarAssets
:控制条的样式。详见 FastRoomControlBarAssets。panelItemAssets
:按钮的样式。详见 FastRoomPanelItemAssets。
FastRoomWhiteboardAssets
白板的样式。
open class FastRoomWhiteboardAssets: NSObject {
@objc
public init(whiteboardBackgroundColor: UIColor, containerColor: UIColor) {
self.whiteboardBackgroundColor = whiteboardBackgroundColor
self.containerColor = containerColor
}
@objc
open var whiteboardBackgroundColor: UIColor
@objc
open var containerColor: UIColor
}
FastRoomWhiteboardAssets
类包含如下属性:
whiteboardBackgroundColor
:白板背景色。containerColor
:挂载白板的 HTML 容器的颜色。
FastRoomControlBarAssets
控制条的样式。
open class FastRoomControlBarAssets: NSObject {
@objc
public init(backgroundColor: UIColor, borderColor: UIColor, effectStyle: UIBlurEffect? = nil) {
self.backgroundColor = backgroundColor
self.borderColor = borderColor
self.effectStyle = effectStyle
}
@objc
var backgroundColor: UIColor
@objc
var borderColor: UIColor
@objc
var effectStyle: UIBlurEffect?
}
FastRoomControlBarAssets
包含如下属性:
backgroundColor
:控制条的背景色。borderColor
:控制条边框的颜色。effectStyle
:毛玻璃效果。详见 UIBlurEffect。
FastRoomPanelItemAssets
按钮的样式。
open class FastRoomPanelItemAssets: NSObject {
@objc
public init(normalIconColor: UIColor,
selectedIconColor: UIColor,
selectedIconBgColor: UIColor,
highlightColor: UIColor,
highlightBgColor: UIColor,
disableColor: UIColor,
subOpsIndicatorColor: UIColor,
pageTextLabelColor: UIColor,
selectedBackgroundCornerradius: CGFloat,
selectedBackgroundEdgeinset: UIEdgeInsets) {
self.normalIconColor = normalIconColor
self.selectedIconColor = selectedIconColor
self.selectedIconBgColor = selectedIconBgColor
self.highlightColor = highlightColor
self.highlightBgColor = highlightBgColor
self.disableColor = disableColor
self.subOpsIndicatorColor = subOpsIndicatorColor
self.pageTextLabelColor = pageTextLabelColor
self.selectedBackgroundCornerRadius = selectedBackgroundCornerradius
self.selectedBackgroundEdgeinset = selectedBackgroundEdgeinset
}
@objc
open var selectedBackgroundCornerRadius: CGFloat
@objc
open var selectedBackgroundEdgeinset: UIEdgeInsets
@objc
open var normalIconColor: UIColor
@objc
open var selectedIconColor: UIColor
@objc
open var selectedIconBgColor: UIColor
@objc
open var highlightColor: UIColor
@objc
open var highlightBgColor: UIColor
@objc
open var disableColor: UIColor
@objc
open var subOpsIndicatorColor: UIColor
@objc
open var pageTextLabelColor: UIColor
}
FastRoomPanelItemAssets
类包含如下属性:
normalIconColor
:普通状态下(即按钮未被选中时),按钮图标的颜色。selectedIconColor
:选中状态下按钮图标的颜色。selectedIconBgColor
:选中状态下按钮的背景色。highlightColor
:高亮状态下(即按钮被按住时),按钮图标的颜色。highlightBgColor
:高亮状态下(即按钮被按住时),按钮的背景色。disableColor
:不可点击状态下按钮的颜色。subOpsIndicatorColor
:下拉按钮的颜色。pageTextLabelColor
:页码的颜色。selectedBackgroundCornerradius
:选中状态的背景圆角。selectedBackgroundEdgeinset
:选中状态的背景内边距。
FastRoomDefaultOperationItem 类
FastRoomDefaultOperationItem
类用于自定义白板用户界面上的操作组件。
defaultColors
public static var defaultColors: [UIColor]
调色盘默认的颜色集合。
你可以在该属性中传入自定义的 [UIColor]
对象,修改调色盘的颜色集合。通过该属性设置的调色盘颜色集合应用于铅笔、文字和图形等工具。