背景
最近公司要求给项目添加小组件功能,发现需求有个细节:根据用户是否添加小组件,做引导功能
主要内容
寻寻觅觅,终于找到该方法
WidgetCenter.shared.getCurrentConfigurations
返回的是闭包:(Result<[WidgetInfo], Error>) -> Void)
通过遍历数组[WidgetInfo],筛选出是否有我们想要的widget,便可以判断是否有添加
详见以下代码
/// 判断widget是否存在
static func isWidgetExist(complete: @escaping (_ exist: Bool) -> Void) {
if #available(iOS 14.0, *) {
WidgetCenter.shared.getCurrentConfigurations { result in
var exist = false
defer {
complete(exist)
}
guard case .success(let widgets) = result else {
return
}
let currentWidget = widgets.first( where: { widget in
print(widget.kind)
var kind = "mywidget" //widget的唯一id
return widget.kind == kind
})
if currentWidget != nil {
exist = true
}
}
} else {
complete(false)
}
}
网友评论