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
相关产品推荐
相关产品推荐

