CTNotificationService 0.1.7

CTNotificationService 0.1.7

由以下成员维护:Peter Wilknissaditi agrawalAkash MalhotraNishant KumarDarshan PaniaCleverTap_SDK_TeamAishwarya Nanna



  • CleverTap

CTNotificationService

Version codebeat badge SwiftPM compatible Carthage compatible License Platform iOS 10.0+

👋简介

一个简单的 Notification Service Extension 类,用于向 iOS 10 丰富推送通知添加媒体附件。从 iOS 10 开始,您可以向 iOS 推送通知添加媒体附件(图片、GIF、视频、音频)。此库提供一个简单的滴入式类来实现这一点。

丰富推送通知是通过iOS 10中的一个Notification Service Extension来启用,这是一个嵌入到您的应用程序包的单独且独立的二进制文件。

📋需求

  1. 与iOS 10.0 或更高版本兼容

  2. 配置您应用程序以推送通知和添加通知服务扩展目标

    • 在您的主应用程序中启用推送通知

    • 在您的项目中创建一个通知服务扩展。要在 Xcode 项目中这样做,请选择 File -> New -> Target,然后选择通知服务扩展模板。

notification service extension

🎉安装

使用 CocoaPods

使用CocoaPodsCTNotificationService安装到您的通知服务扩展中。

您的Podfile应该看起来像这样

source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '10.0'

use_frameworks!

target 'YOUR_NOTIFICATION_SERVICE_TARGET_NAME' do  
    pod 'CTNotificationService'  
end     

然后运行pod install

在这里查看示例Podfile.

Carthage

CTNotificationService 支持 Carthage 将依赖打包成框架。

要使用 Carthage 将 CTNotificationService 集成到您的 Xcode 项目中,请在您的 Cartfile 中指定以下内容

github "CleverTap/CTNotificationService"

运行 carthage update 以构建框架,并将构建的 CTNotificationService.framework 拖放到您的 Xcode 项目中。

Swift Package Manager

Swift Package Manager 是 Xcode 中的一个工具,用于安装项目依赖项。要使用它安装 CTNotificationService SDK,请按照以下步骤操作

  • 在 Xcode 中,转到 文件 -> Swift Package Manager -> 添加包依赖。
  • 选择包仓库时,输入 https://github.com/CleverTap/CTNotificationService.git,然后点击 下一步。
  • 在下一屏上,选择一个 SDK 版本(默认情况下,Xcode 选择最新稳定版本)。点击 下一步。
  • 点击 完成 确保已将 CTNotificationService 添加到适当的目标。

🚀集成

配置您的通知服务扩展以使用 CTNotificationServiceExtension 类

默认情况下,CTNotificatonServiceExtension 会查找具有表示您媒体文件 URL 值的 push 消息负载密钥 ct_mediaUrl 和具有媒体类型(图像、视频、音频或 gif)值的密钥 ct_mediaType

如果您对默认密钥名称感到满意,则可以将 CTNotificationServiceExtension 插入您的扩展类名称,作为通知服务扩展目标 Info.plist 中 NSExtension -> NSExtensionPrincipalClass 条目的值。请参阅此处示例

或者,您可以将 NSExtensionPrincipalClass 条目保留为不变,同时让您的 NotificationService 类扩展 CTNotificationServiceExtension 类。然后,如果您愿意,也可以覆盖默认键名。请参阅 此处 Swift 示例此处 Objective-C 示例。在这种情况下,仅覆盖示例中显示的 didReceive request: contentHandler:

如果您计划下载非SSL URL,请确保在plist中启用App Transport Security设置 -> 允许任意加载 -> 开启。 请在此处查看plist示例

配置您的APNS有效负载

然后,当通过APNS发送通知时

  • 请确保在有效负载的aps条目中包含mutable-content标志(此键必须在aps有效负载中存在,否则系统不会调用您的应用扩展)
  • 在aps条目之外添加ct_mediaUrlct_mediaType键值(或您自定义的键值)到有效负载中。
{
    "aps": {
        "alert": {
      		"body": "test message",
      		"title": "test title",
   	  	},
        "mutable-content": 1,
   	},
    "ct_mediaType": "gif",
    "ct_mediaUrl": "https://www.wired.com/images_blogs/design/2013/09/davey1_1.gif",
	...
}

示例用法

🆕更改日志

请参阅CTNotificationService更改日志