You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift新手如何在SwiftUI项目中接入Objective-C版SurveyMonkey SDK

完整接入流程步骤

1. 集成SurveyMonkey SDK

通过CocoaPods集成是最简便的方式,在项目的Podfile文件中添加以下依赖:

pod 'surveymonkey-ios-sdk'

保存后在项目根目录终端执行pod install,完成后打开项目后缀为.xcworkspace的文件进行后续开发。

2. 创建Objective-C桥接头文件

  • 右键项目根目录,选择「New File」,选中iOS分类下的「Header File」,命名规则为[你的项目名]-Bridging-Header.h
  • 打开项目Build Settings设置页,搜索「Objective-C Bridging Header」,将刚创建的头文件路径填入配置项,通用格式为$(SRCROOT)/[项目名]/[项目名]-Bridging-Header.h
  • 在桥接头文件中添加以下导入语句:
#import <SurveyMonkeyiOSSDK/SurveyMonkeyiOSSDK.h>
#import "SurveyMonkeyManager.h"

3. 封装Objective-C调用工具类

右键项目根目录新建「Objective-C File」,命名为SurveyMonkeyManager,Xcode弹出是否创建对应头文件的提示时选择「是」。

3.1 头文件(SurveyMonkeyManager.h)代码

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface SurveyMonkeyManager : NSObject
+ (instancetype)sharedManager;
- (void)presentSurveyFromViewController:(UIViewController *)viewController;
@end

3.2 实现文件(SurveyMonkeyManager.m)代码

#import "SurveyMonkeyManager.h"
#import <SurveyMonkeyiOSSDK/SurveyMonkeyiOSSDK.h>

@implementation SurveyMonkeyManager

+ (instancetype)sharedManager {
    static SurveyMonkeyManager *instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
        // 下方替换为你自己的SurveyMonkey问卷Hash值
        [[SMFeedback shared] startWithSurveyHash:@"你的问卷Hash"];
    });
    return instance;
}

- (void)presentSurveyFromViewController:(UIViewController *)viewController {
    [[SMFeedback shared] presentSurveyFromViewController:viewController completion:^(NSError * _Nullable error) {
        if (error) {
            NSLog(@"问卷加载失败: %@", error.localizedDescription);
        }
    }];
}

@end

4. 在SwiftUI的part61视图中调用

直接修改你的part61结构体代码如下即可:

import SwiftUI

struct part61: View {
    var body: some View {
        VStack(spacing: 20) {
            Text("SurveyMonkey 问卷测试")
                .font(.title)
            Button("点击打开问卷") {
                // 调用封装好的Objective-C工具类方法
                if let rootVC = UIApplication.shared.windows.first?.rootViewController {
                    SurveyMonkeyManager.shared().presentSurvey(from: rootVC)
                }
            }
            .padding()
            .background(Color.blue)
            .foregroundColor(.white)
            .cornerRadius(8)
        }
        .padding()
    }
}

5. 运行验证

替换完你自己的问卷Hash值后编译运行,通过NavigationLink进入part61页面,点击按钮即可正常拉起SurveyMonkey问卷。

内容的提问来源于stack exchange,提问作者imjonu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 07:24:04