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

背景

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

主要内容

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

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)
        }
    }
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容