菜单

iOS 弹窗集成

集成 SDK

集成神策分析 SDK

在使用弹窗 SDK 之前,请确保已经集成了神策分析 iOS SDK,版本需要在 v4.2.0及以上。详细集成步骤请参照 iOS SDK 埋点集成使用帮助文档

集成神策弹窗 SDK

CocoaPods 方式

  • 项目 Podfile 中添加以下配置:
pod 'SensorsFocus'
  • Podfile 目录下执行 pod install 安装 SDK。

手动集成方式

  • 从  GitHub 获取 SDK;
  • 将 SDK(SensorsFocus → SensorsFocus 中的 SensorsFocus.xcframework 与 SensorsFocus.bundle)导入 App 项目,并选中 Copy items if needed

弹窗 SDK 集成 Demo,可参考 GitHub

初始化 SDK

首先您需要初始化神策分析 SDK,具体可参考:初始化 SDK 并开启全埋点

神策分析 SDK 初始化完成之后,再初始化神策弹窗 SDK。参考代码如下:

#import <SensorsFocus/SensorsFocus.h>

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

	// 1. 初始化神策分析 SDK
	...

	// 2. 初始化神策弹窗 SDK
    SFConfigOptions *sfOptions = [[SFConfigOptions alloc] initWithApiBaseURL:@"<#服务器地址,请联系运营人员获取#>"];
    sfOptions.popupDelegate = self;
	sfOptions.campaignDelegate = self;
    [SensorsFocus startWithConfigOptions:sfOptions];

	return YES;
}

配置 Scheme

关于 Scheme 的配置方法,参考:配置 Scheme

AppDelegate 中的 - application:openURL:options: 方法中调用 - handleOpenURL: 对神策 Scheme 进行处理。

- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
	if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) {
        return YES;
    }
	if ([SensorsFocus handleOpenURL:url]) {
		return YES;
	}
	return NO;
}

实现弹窗回调

在 SensorsFocus 初始化时,可以通过设置 SFConfigOptions 的 popupDelegate  和 campaignDelegate 来设置对弹窗的回调监听。遵守 SensorsFocusPopupDelegate 和SensorsFocusCampaignDelegate 协议,并实现以下协议方法。

设置弹窗开始触达回调

在弹窗触达开始时,SDK 会调用 - campaignDidStart: 回调方法。

/**
 弹窗开始触达回调

 @param campaign 弹窗数据
 */
- (void)campaignDidStart:(SFCampaign *)campaign {
    if (campaign.type == SFCampaignTypeCustomized) {
        // 自定义弹窗
    }
}

设置弹窗触达结束回调

在弹窗触达结束时,SDK 会调用 - campaignDidEnd: 回调方法。

/**
 弹窗触达结束回调

 @param campaign 弹窗数据
 */
- (void)campaignDidEnd:(SFCampaign *)campaign {
     
}

设置弹窗触达失败回调

在弹窗触达失败时,SDK 会调用 - campaignFailed: error: 回调方法。

/**
 弹窗触达失败回调

 @param campaign 弹窗数据
 @param error 失败错误信息。除了网络请求中系统默认的错误之外,SDK 也自定义了的部分错误,domain 为 SensorsFocusErrorDomain。错误信息如下:
    1. 图片下载失败:1000
    2. 获取测试弹窗数据请求失败:1001
*/
- (void)campaignFailed:(SFCampaign *)campaign error:(NSError *)error {
 
}

设置弹窗按钮点击回调

当用户点击预置弹窗上的按钮、图片或遮罩时,SDK 会触发 - popupDidClickWithPlanID:action: 回调方法。

- (void)popupDidClickWithPlanID:(NSString *)planID action:(SensorsFocusActionModel *)action {
    NSLog(@"Did click action: %@,\n Plan id: %@", action, planID);
    switch (action.type) {
        case SensorsFocusActionTypeClose:
            // 自动关闭弹窗
            break;
        case SensorsFocusActionTypeOpenlink:
            // 自定义处理打开链接
            NSLog(@"%@", action.value);
            break;
        case SensorsFocusActionTypeCopy:
            // 自动复制弹窗文本
            NSLog(@"%@", action.value);
            break;
        case SensorsFocusActionTypeCustomize:
            // 处理自定义信息
            NSLog(@"%@", action.extra);
            break;
        default:
            break;
    }
}

目前支持的操作有:关闭弹窗、跳转链接、复制文本、自定义链接。对应关系如下:

序号类型弹窗响应typevalueextra
1关闭弹窗

点击后弹窗关闭

SensorsFocusActionTypeClosenilnil
2跳转链接

点击后弹窗关闭

SensorsFocusActionTypeOpenlinkURL 跳转链接nil
3复制文本点击后弹窗不关闭SensorsFocusActionTypeCopy被复制的文本nil
4自定义链接

点击后弹窗关闭

SensorsFocusActionTypeCustomizenil自定义的 key-value

注意

SDK 无法自动处理 SensorsFocusActionTypeOpenlinkSensorsFocusActionTypeCustomize 类型,需要手动处理页面跳转操作。

弹窗调试

创建运营计划并测试弹窗

首先在神策智能运营中创建运营计划,并且“触发条件”中的“平台类型”选择 iOS,然后配置好“触达配置”就可以点击右侧的“测试弹窗”按钮以打开二维码。

扫描二维码

使用已安装了测试 App 的设备,通过手机自带的系统相机扫描二维码,扫码后会在浏览器中打开二维码对应的网页。

唤起 App

若 App 已经成功集成 SDK 则会直接唤起 App 或提示询问是否唤起 App。

若 App 集成 SDK 存在问题或未安装 App,则会进入到如下报错界面,请检查您的 App 配置。

测试弹窗效果

跳转成功后,会在 App 内弹出弹窗。

弹窗后的关闭弹窗、点击按钮等效果与创建的运营计划一致。

上一个
Android 弹窗集成
下一个
H5 弹窗集成
最近修改: 2025-01-02