EgoiPushLibrary 2.3.3

EgoiPushLibrary 2.3.3

测试已测试
语言语言 Objective-CObjective C
许可 MIT
发布上次发布2024年4月

E-goi 维护。



  • 作者
  • E-goi

2.3.0 版本更新内容是什么?

次要更新

地理位置周期

现在您可以为通知显示定义一个周期(通过 E-goi 的平台)。

EgoiPushLibrary

Version License Platform

需求

要使用此库,您必须在您的应用中配置好Firebase。 不知道如何操作?阅读这篇文章
注意:此库的主要目的是处理推送通知,因此您只需安装pod 'Firebase/Messaging'即可使其工作。

您必须在Firebase应用中插入APNs密钥。 更多信息请查阅此处

您必须拥有一个E-goi账户,并且已经配置了一个推送应用程序

您必须在Info.plist中插入以下属性

  • 必需的后台模式
    • 应用注册位置更新
    • 应用在后台处理数据
    • 应用在接收到推送通知时下载内容
  • 隐私 - 位置始终开启或使用时描述
  • 隐私 - 使用时位置描述

安装

EgoiPushLibrary通过CocoaPods提供。安装它,只需将以下行添加到Podfile中

pod 'EgoiPushLibrary'

安装后,您可以用以下指令在AppDelegate.swift中初始化库

注意:您的AppDelegate应该扩展我们的EgoiAppDelegate而不是从 UIResponder 或 UIApplicationDelegate 延伸。如果您使用的是SceneDelegate,您还必须扩展EgoiSceneDelegate。这是我们处理逻辑的方式,您不需要像处理接收到的远程通知一样,这还允许我们在您的应用中显示警告。

注意:如果您想要处理通知,应该扩展我们的 EgoiAppDelegateViewOnly,这样我们就不会控制 UNUserNotificationCenter。

import EgoiPushLibrary

class AppDelegate: EgoiAppDelegate {

    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
    ) -> Bool {
        FirebaseApp.configure()
        Messaging.messaging().delegate = self
            
        EgoiPushLibrary.shared.config(
            appId: "abc",
            apiKey: "abc",
            dialogCallBack: { message in
                print(message)
            },
            deepLinkCallBack: { message in
                print(message)
            }
        )
            
        return true
    }
}

AppDelegate.swift 中,您可以使用以下代码将 Firebase token 发送到库

extension AppDelegate : MessagingDelegate {
    
    public func messaging(
        _ messaging: Messaging,
        didReceiveRegistrationToken fcmToken: String?
    ) {
        guard let token = fcmToken else {
            return
        }
        
        EgoiPushLibrary.shared.addFCMToken(token: token)
    }
}

NotificationServiceExtension

要在通知中显示您 E-goi 营销活动中定义的图像和操作,您需要创建一个 NotificationServiceExtension 来处理在操作系统在设备上显示之前的逻辑。为此,您可以参考此链接。生成文件后,您可以复制并粘贴我们的 NotificationService(请确保类名是您生成的,而不是我们的文件中的名称)的内容。

在您的 Podfile 中,您需要将 'Firebase/Messaging' 添加为 NotificationServiceExtension 的依赖项。

参考资料

配置

EgoiPushLibrary.shared.config()

负责初始化库。此方法的调用是必需的。

属性 类型 说明 必需 默认
appId 字符串 E-goi账户上创建的应用的ID。 true ---
apiKey 字符串 您的E-goi账户的API密钥。 true ---
geoEnabled 布尔 启用或禁用位置相关功能的标志。 false true
dialogCallBack EGoiMessage -> Void 在对话框的位置调用的回调。 false nil
deepLinkCallBack EGoiMessage -> Void 当消息的链接是deeplink时调用的回调 false nil

EgoiPushLibrary.shared.addFCMToken()

每次生成新的Firebase令牌时都应调用此方法。令牌将保存到库中,如果用户已经在您的E-goi列表中注册,则自动更新令牌。

属性 类型 说明 必需 默认
token 字符串 Firebase生成的令牌。 true ---

EgoiPushLibrary.shared.processNotification()

此方法处理接收到的远程通知。如果远程通知是位置推送,则在用户进入区域时触发本地通知的地理围栏。如果是正常通知,则在用户打开通知横幅时显示通知并打开E-goi定义的操作对话框。

此方法已在实现于 EgoiAppDelegate.swift 中的 didReceiveRemoteNotification 内部调用,但您也可以在自己的通知处理中调用它。

属性 类型 说明 必需 默认
userInfo [AnyHashable : Any] 通知的数据。 true ---
callback @escaping (UIBackgroundFetchResult) -> Void 处理完通知后将被调用的回调。 true ---

EgoiPushLibrary.shared.handleNotificationInteraction()

此方法处理用户与通知的交互。如果用户点击通知,则打开应用并启动一个包含定义好的操作的对话框。如果用户点击“查看”操作,则使用默认浏览器打开通知中定义的URL或尝试调用SDK配置中定义的deeplinkCallback。它还会根据用户的交互将事件“打开”或“已取消”发送给E-goi。

如果您是处理通知的方,应在UNUserNotificationCenterDelegate的didReceive方法中调用此方法。

属性 类型 说明 必需 默认
响应 UNNotificationResponse 用户与通知的交互 true ---
userNotificationCenter UNUserNotificationCenter 当前的UNUserNotificationCenter实例。它用于管理由E-goi创建的通知类别。 false nil
completionHandler () -> Void 处理交互后调用的回调。 false nil

操作

EgoiPushLibrary.shared.requestForegroundLocationAccess()

请求用户权限在应用在前台(在屏幕上显示)时访问位置。

EgoiPushLibrary.shared.requestBackgroundLocationAccess()

请求用户权限在应用处于后台(最小化或关闭)时访问位置。

EgoiPushLibrary.shared.requestNotificationsPermission()

请求用户允许发送推送通知。

EgoiPushLibrary.shared.sendToken()

在E-goi列表中注册Firebase令牌。您只需调用此方法一次,之后库会自动使用新令牌更新E-goi列表中的联系人。

属性 类型 说明 必需 默认
字段 字符串 用于注册令牌的列表上的字段。 false nil
字符串 用于在上述字段中注册的值。 false nil
callback @escaping (_ success: Bool, _ message: String?) -> Void 当E-goi服务器完成请求处理时将调用的回调 true ---

EgoiPushLibrary.shared.registerEvent()

在E-goi中注册与通知相关的事件。

属性 类型 说明 必需 默认
事件 字符串 要在E-goi中注册的事件。 true ---
消息 EGoiMessage 与事件相关联的消息 true ---

作者

E-goi, [email protected]

许可

EgoiPushLibrary 按照MIT许可可用。有关更多信息,请参阅LICENSE文件。