判断手机用户是否添加小组件

2022-07-26  本文已影响0人  zhengxiaolang

背景

最近公司要求给项目添加小组件功能,发现需求有个细节:根据用户是否添加小组件,做引导功能

主要内容

寻寻觅觅,终于找到该方法

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)
        }
    }
上一篇下一篇

猜你喜欢

热点阅读