如何为用户提供丰富的通知服务(包括图片图标)?

Posted

技术标签:

【中文标题】如何为用户提供丰富的通知服务(包括图片图标)?【英文标题】:How to provide Rich NotificationService(including image icon) to user? 【发布时间】:2017-10-03 06:18:12 【问题描述】:

最近我在做一个项目,它需要嵌入丰富的通知。所以我从火力基地接受服务。最初我从这些网站尝试过。并且在 youtube 中有一些爱好项目,他们从本地机器发送通知。

https://www.avanderlee.com/ios-10/rich-notifications-ios-10/

UNNotificationAttachment with UIImage or Remote URL

How to implement rich notifications in ios 10 with Firebase

How to send Image with firebase Push Notification using swift 3

但我花了将近 16 个小时。它给了我 0 输出,因为标题,副标题很好地来自 firebase,但没有图像图标的迹象。

请给我建议任何方法或好的视频或其他东西。

【问题讨论】:

您需要创建 NotificationService 扩展。在扩展类中下载附件图片并修改通知内容。 是的,我做到了,我还为此添加了 mutable-content/mutable_content,但没有发展的迹象。 你是在运行你的应用目标还是扩展目标? 我在应用目标中运行 运行扩展目标并在提示列表中选择您的应用。并在扩展类中使用断点来检查它是否正在执行。 【参考方案1】:

您的应用目标的 plist 应包含以下行

<key>NSExtensionPointIdentifier</key> 
<string>com.apple.usernotifications.service</string> 
<key>NSExtensionPrincipalClass</key> 
<string>$(PRODUCT_MODULE_NAME).NotificationService</string>

您的扩展程序的 plist 应该如下所示

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>CFBundleDevelopmentRegion</key>
    <string>en</string>
    <key>CFBundleDisplayName</key>
    <string>RemotePushExtension</string>
    <key>CFBundleExecutable</key>
    <string>$(EXECUTABLE_NAME)</string>
    <key>CFBundleIdentifier</key>
    <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    <key>CFBundleInfoDictionaryVersion</key>
    <string>6.0</string>
    <key>CFBundleName</key>
    <string>$(PRODUCT_NAME)</string>
    <key>CFBundlePackageType</key>
    <string>XPC!</string>
    <key>CFBundleShortVersionString</key>
    <string>1.0</string>
    <key>CFBundleVersion</key>
    <string>1.12</string>
    <key>NSAppTransportSecurity</key>
    <dict>
        <key>NSAllowsArbitraryLoads</key>
        <true/>
    </dict>
    <key>NSExtension</key>
    <dict>
        <key>NSExtensionPointIdentifier</key>
        <string>com.apple.usernotifications.service</string>
        <key>NSExtensionPrincipalClass</key>
        <string>NotificationService</string>
    </dict>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>Want to access your photo album to save image</string>
</dict>
</plist>

【讨论】:

您能说一下 NotificationServiceExtension plist 中添加了哪些额外的行吗?

以上是关于如何为用户提供丰富的通知服务(包括图片图标)?的主要内容,如果未能解决你的问题,请参考以下文章

仅音频中的自定义操作通知图标

已阻止:仅当按钮具有外部图标时,如何为按钮提供额外的填充?

如何为 NavigationView 中的单个菜单项提供自定义图标颜色?

如何为每种产品风格提供不同的启动器图标

VC6.0程序编译后如何为程序添加图标

如何为按钮右侧添加图像/图标?