Unomok 1.0.8

Unomok 1.0.8

Unomok Limited 维护。



 
依赖项
Firebase~> 10.21.0
SDWebImage~> 5.18.10
EasyTipView~> 2.1.0
 

Unomok 1.0.8

  • Unomok Limited

Mok SDK

5.0 iOS License

欢迎来到 Mok SDK 的集成指南。本文档提供了将 Mok SDK 集成到 Xcode 项目中的逐步说明。Mok 是一个针对网站和移动应用的客户参与平台。它提供了一个集成的套件,用于简化工程和产品管理中的通知。要使用 Mok SDK,我们需要使用项目环境、读取密钥和写入密钥初始化它。此初始化过程对于授权和确保 SDK 在项目内正确运行至关重要。

  1. 先决条件
  2. 安装
  3. 初始化
  4. 使用

先决条件

  • iOS 16.0 或更高版本
  • Xcode 14 或更高版本
  • Swift 5.0
  • Mok SDK 读写密钥

安装

Cocoapods

CocoaPods 是一个用于 Cocoa 项目的依赖管理工具。要使用 CocoaPods 将 Mok 集成到 Xcode 项目中,请在 Podfile 中包含该规范。有关使用和安装的详细说明,请参阅他们的官方网站。[incomplete: need to distribute the SDK via cocoapods]

Swift Package Manager

Swift Package Manager 是一个用于管理 Swift 代码分布的工具。它集成了 Swift 构建系统,以自动化下载、编译和链接依赖项的过程。[incomplete: need to distribute the SDK via SPM]

Carthage

Carthage 是一个基于 Git 的 iOS 依赖管理工具,强调动态框架,没有锁定文件,并允许手动集成到 Xcode 项目中。[incomplete: need to distribute the SDK via Carthage]

手动集成

如果您选择不使用上面提到的依赖管理器,您还有另一种选项 - 手动将 Mok SDK 集成到您的项目中。

  1. 下载最新的 Mok XCFramework 版本(包括 xcframework 的链接)

  2. 将 XCFramework 文件拖放到 Xcode 项目文件导航器中。

  3. 嵌入并签名 XCFramework

    1. 在 Xcode 中选择您的应用程序目标。
    2. 转到“通用”选项卡。
    3. 在框架、库和嵌入式内容部分,为Unomok.xcframework选择嵌入和签名。

    Alt text

您的手动集成现已完成。请确保项目中包含XCFramework并将其嵌入到应用目标中。

初始化

  1. 在您的AppDelegate中导入SDK。
import Unomok
  1. 使用项目环境、SDK阅读密钥和SDK写入密钥初始化SDK。
let _ = MokSDK(isProductionEnv: "BOOL_OF_PROJECT_ENVIRONMENT",   sdkReadKey:"YOUR_SDK_READ_KEY", sdkWriteKey: "YOUR_SDK_WRITE_KEY")

以下是在Markdown表格格式中呈现的信息。

参数 描述
BOOL_OF_PROJECT_ENVIRONMENT 一个布尔值,表示项目环境。如果是生产环境,使用true;否则,使用false
READ_KEY Mok提供的SDK读取密钥,用于验证和配置。
WRITE_KEY Mok提供的SDK写入密钥,用于验证和配置。
  1. 在SDK初始化后更新用户ID。
MokSDK.updateUser(userID: "USER_ID", withParameters: "PARAMETERS"){ sucessMessage, error in

}

以下是在Markdown表格格式中呈现的信息。

参数名 描述
USER_ID 当前用户或设备的用户ID。
parameters 与事件相关的任何其他数据,用[String: Any]格式表示。

例如,如果您需要发送用户ID和姓名,可以发送为

MokSDK.updateUser(userID: "USER_ID", withParameters: [
  "name": "John Doe"
]) { sucessMessage, error in

}

使用

记录特定于用户的事件

Mok SDK可以使用指定的名称和附加参数记录特定于用户的事件。

MokSDK.logEvent(userID: userId, eventName: eventName, parameters: params) { [self] (successMessage, error) in
}

以下是在Markdown表格格式中呈现的信息。

参数名 描述
userID 当前用户或设备的用户ID。
eventName 需要记录的当前事件的名称。
parameters 与事件相关的任何其他数据,用[String: Any]格式表示。

推送通知

Mok SDK为处理推送通知提供无缝集成,允许您通过Apple Push Notification Service (APNs)Firebase Cloud Messaging (FCM)与用户互动。

在iOS应用程序中设置推送通知涉及多个步骤,需要在您的应用程序和Apple开发者账号中进行配置。以下是使用Swift在iOS应用程序中设置推送通知的步骤指南

  1. 在Apple开发者网站上创建一个App ID。

    • 访问Apple开发者网站
    • 选择“标识”然后创建一个新的App ID。
    • 确保在App ID设置中启用“推送通知”。
  2. 创建一个APNs密钥

    • Apple开发者网站中,转到密钥并创建一个新的密钥。
    • 启用Apple Push Notifications服务(APNs)选项。
  3. 配置您的Xcode项目

    • 打开您的Xcode项目。
    • 在“签名和功能”选项卡下,确保您的应用程序具有唯一的应用程序包标识符,该标识符与在Apple开发者网站上注册的标识符匹配。
    • 在Xcode中启用“推送通知”和“后台模式”功能。
  4. 处理设备令牌

实现处理接收到的设备令牌的方法。

func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { MokSDK.registerDeviceTokenForRemoteNotification(deviceToken: deviceToken) { token, message, errorMessage  in
  }
} 

registerDeviceTokenForRemoteNotification会将deviceToken注册到MokSDK

以下是在Markdown表格格式中呈现的信息。

属性名称 描述
token 如果您推送通知类型是FCM,则保留生成的FCM令牌。
message 如果推送通知类型是APNs,则保留字符串形式的成功消息。
errorMessage 字符串形式的错误消息。
  1. 请求用户权限并注册远程通知

MokSDK的registerForRemoteNotification方法将请求用户权限以接收推送通知并自动注册远程通知。因此,无需实现UNUserNotificationCenter的requestAuthorization和UIApplication的registerForRemoteNotifications方法。如果使用Firebase,则使用(1);否则,使用(2)。

MokSDK.registerForRemoteNotification(type: .fcm) // (1)

MokSDK.registerForRemoteNotification() // (2)
  1. 实现代理方法
UNUserNotificationCenter.current().delegate = self

extension AppDelegate : UNUserNotificationCenterDelegate {
    func userNotificationCenter(_ center: UNUserNotificationCenter, willPresent notification: UNNotification, withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void) {
        let userInfo = notification.request.content.userInfo
        print(userInfo)
        completionHandler([[.banner, .sound]])
    }
    
    func userNotificationCenter(_ center: UNUserNotificationCenter, didReceive response: UNNotificationResponse, withCompletionHandler completionHandler: @escaping () -> Void) {
        if let userInfo = response.notification.request.content.userInfo as? [String: Any] {
            print(userInfo)
        }
        completionHandler()
    }
}

Firebase

  1. 将Firebase添加到您的Apple项目中

如果您还没有这样做,请先将 Firebase 添加到您的 Apple 项目

  1. 上传您的 APNs 身份验证密钥

将您的 APNs 身份验证密钥上传到 Firebase。如果您还没有 APNs 身份验证密钥,请确保在苹果开发者门户中创建一个。

1. Open Firebase Console. Navigate to your project. Inside your project, select the settings icon, select Project Settings, and then select the Cloud Messaging tab.
2. In APNs Authentication Key section under Apple app configuration, click the Upload button.
3. Browse to the location where you saved your p8 key, select it, and click Open. Add the key ID and Team ID for the key (available in the Apple Developer Portal) and click Upload.         

APNs

对于 APNs,您需要将 APNs 身份验证密钥上传到Mok 控制板

  1. 进入“通知”部分下的“频道”标签。
  2. 选择“Apple”,并在那里添加您的苹果凭证。
  3. 您需要在其中添加凭证名称、p8 密钥、密钥 ID、团队 ID 和主题。主题与束标识符相同。

Alt text

自动化识别

Mok 会自动识别具有独特无障碍标签的视图。当集成 SDK 并捕获屏幕时,所有此类元素将自动出现在 Mok 控制板上。这些元素用于针对元素的特定应用程序内通知,如焦点和工具提示。自动化识别仅用于识别屏幕上的视图,从而能够配置针对 UI 元素的特定应用程序内通知,并根据这些识别的元素显示旋转视图。该功能仅在 iOS 开发模式下运行(不在 App Store 中)。其功能取决于初始化 Mok SDK 期间传递的 isProductionEnv 的值。自动化识别添加无障碍标签的格式以 PL_iOS 开始。例如,如果有一个需要自动识别的 UILabel,您可以用 PL_iOS_Name_Label 命名它。无需额外的实现;SDK 将自动管理。

设备详细信息获取

初始化时,此SDK会自动获取设备详细信息。无需额外实现;SDK将自动处理。收集到的设备信息包括:

设备信息 描述
设备型号 设备的型号。
系统版本 操作系统的版本。
设备名称 分配给设备的名称。
UDID 唯一的设备标识符。
设备类型 设备的类型或类别。
屏幕尺寸 设备屏幕的物理尺寸。
设备方向 设备的当前方向。
总物理内存 设备上可用的总物理内存。
电池状态 设备电池的当前状态。
电池电量 设备电池的当前电量。
屏幕亮度 设备屏幕的当前亮度。
语言 设备的语言设置。
国家/地区 设备的国家/地区设置。
时区 设备的时区设置。
互联网状态 设备互联网连接的当前状态。

应用内消息和弹出窗口

Mok可用于显示应用内通知。您可以根据需要配置不同类型的应用内通知,例如:弹出窗口、工具提示、聚光灯等。

  1. 获取应用内通知

在获取应用内通知时,应用内通知将存储在本地SQLite存储中。用于获取应用内通知的方法是:

MokSDK.fetchInappNotifications(userID: userId) { inAppMessageList, error in
}
  1. 显示应用内通知

显示所有待处理应用内通知的方法是:

 MokSDK.loadAllPendingPopups()

此方法将从本地数据库中获取所有应用内通知,并根据通知类型显示它们。

  1. 删除应用内通知

要删除所有应用内通知,请使用以下方法

MokSDK.removeAllInappData()

通常,应用内通知在显示后将从数据库中自动删除。上述方法可用于任何额外的实现。

应用内轮播视图

使用Mok SDK,您可以轻松地显示通过仪表板配置的轮播视图。

  1. 获取轮播视图内容

在获取轮播视图时,轮播内容将存储在本地SQLite存储中。要获取所有轮播视图,请使用以下方法

MokSDK.fetchAllCarouselContents { carousalArray, error in
  
}
  1. 显示所有轮播视图

显示所有轮播视图的方法是:

MokSDK.showCarouselViews { _ in
 
}

此方法将从前端的本地数据库中获取所有轮播视图内容。

  1. 删除所有轮播内容

要删除本地存储中的所有轮播内容,请使用以下方法

MokSDK.removeAllCarouselData { _ in

}

引导视图

通过Mok SDK,您可以在仪表板配置的引导视图中显示引导视图。

  1. 获取所有引导视图内容

要获取所有引导视图内容,请使用以下方法

 MokSDK.fetchAllOnboardingScreenContents { contentsArray, error in

}
  1. 显示引导视图

以下方法将显示所有引导视图

MokSDK.showOnboardingScreen()