美文网首页
判断手机用户是否添加小组件

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

作者: zhengxiaolang | 来源:发表于2022-07-26 10:47 被阅读0次

背景

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

主要内容

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

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)
        }
    }

相关文章

网友评论

      本文标题:判断手机用户是否添加小组件

      本文链接:https://www.haomeiwen.com/subject/uvfzirtx.html