iOS:Swift:当通知内容中没有图像时,删除图像视图空间

问题描述

我已经为推送通知实现了服务和内容。当图像不可用时,图像视图空间仍显示为空白。没有图像时,我只需要通知文本即可。

这是我的代码

func didReceive(_ notification: UNNotification) {
        let content = notification.request.content
        
        if let urlImageString = content.userInfo["image"] as? String {
            if let url = URL(string: urlImageString) {
                URLSession.downloadImage(atURL: url) { [weak self] (data,error) in
                    if let _ = error {
                        return
                    }
                    guard let data = data else {
                        return
                    }
                    dispatchQueue.main.async {
                        self?.imageView.image = UIImage(data: data)
                    }
                }
            }
        }
    }
    
}

extension URLSession {
    
    class func downloadImage(atURL url: URL,withCompletionHandler completionHandler: @escaping (Data?,NSError?) -> Void) {
        let dataTask = URLSession.shared.dataTask(with: url) { (data,urlResponse,error) in
            completionHandler(data,nil)
        }
        dataTask.resume()
    }
}

当我单击推送通知的查看按钮时,它显示

enter image description here

解决方法

您必须在.plist文件中将“ UNNotificationExtensionInitialContentSizeRatio”添加到0,如下图所示。

enter image description here