鹅家守护SDK使用文档(iOS)

隐私合规特性

SDK已集成完整的个人信息处理规则文档,符合《个人信息保护法》等法律法规要求:

  • 内置隐私规则文档:SDK包含完整的个人信息处理规则(plist格式)
  • 自动加载机制:SDK初始化时自动加载隐私规则至宿主APP
  • 丰富查询接口:提供完整的API供APP查询和展示隐私信息
  • 用户确认机制:支持隐私规则用户确认和回调通知
  • 合规认证:符合国内隐私保护法律法规要求

环境要求

iOS版本要求

  • 最低支持版本:iOS 12.0
  • 目标版本:iOS 17.0
  • 编译版本:iOS 17.0

开发环境

  • Xcode 14.0+
  • Swift 5.0+
  • Objective-C:支持
  • CocoaPods 1.10.0+

权限要求

Info.plist中添加以下权限描述:

<!-- 定位权限(必需) -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>开启位置权限,鹅家守护将提供精准的定位服务。</string>

<key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
<string>持续获取位置信息用于家庭守护,提供实时位置共享服务,保障安全。</string>

<!-- 麦克风权限(可选,用于语音消息) -->
<key>NSMicrophoneUsageDescription</key>
<string>用于发送语音信息</string>

<!-- 后台模式(必需,用于后台定位) -->
<key>UIBackgroundModes</key>
<array>
    <string>location</string>
    <string>fetch</string>
    <string>remote-notification</string>
</array>

快速接入

添加依赖

在您的Podfile文件中添加依赖:

pod 'TencentGuardMapSDK'

然后执行:

pod install

注意:如需获取SDK,请联系技术支持团队获取相关配置信息和访问权限。

初始化SDK

在您的AppDelegate或任意合适位置初始化SDK:

Objective-C 示例:

#import <TencentGuardMapSDK/TencentGuardMapSDK.h>

@implementation ViewController

- (void)initializeSDK {
    // 1. 创建基础配置(只需必填的三个设备标识参数)
    QGConfig *baseConfig = [[QGConfig alloc] initWithQimei:@"your_qimei"
                                                    qimei36:@"your_qimei36"
                                                  installId:@"your_install_id"];
    
    // 2. 创建初始化配置
    QGInitializationConfig *config = [[QGInitializationConfig alloc] initWithConfig:baseConfig];
    
    // 3. 设置SDK代理(可选,用于接收定位回调)
    [QGSDKManager sharedInstance].delegate = self;
    
    // 4. 初始化SDK
    [[QGSDKManager sharedInstance] initializeWithConfig:config];
}

#pragma mark - QGSDKManagerDelegate

// SDK初始化完成回调
- (void)sdkManager:(QGSDKManager *)manager didCompleteInitialization:(BOOL)success error:(NSError *)error {
    if (success) {
        NSLog(@"SDK初始化成功,定位服务已启动");
    } else {
        NSLog(@"SDK初始化失败: %@", error.localizedDescription);
    }
}

// 位置更新回调
- (void)sdkManager:(QGSDKManager *)manager didUpdateLocation:(CLLocation *)location {
    NSLog(@"位置更新: 纬度=%.6f, 经度=%.6f, 精度=%.2fm",
          location.coordinate.latitude,
          location.coordinate.longitude,
          location.horizontalAccuracy);
}

// 定位失败回调
- (void)sdkManager:(QGSDKManager *)manager didFailToUpdateLocationWithError:(NSError *)error {
    NSLog(@"定位失败: %@", error.localizedDescription);
}

@end

Swift 示例:

import TencentGuardMapSDK
import CoreLocation

class ViewController: UIViewController, QGSDKManagerDelegate {
    
    func initializeSDK() {
        // 1. 创建基础配置(只需必填的三个设备标识参数)
        let baseConfig = QGConfig(qimei: "your_qimei",
                                 qimei36: "your_qimei36",
                                 installId: "your_install_id")
        
        // 2. 创建初始化配置
        let config = QGInitializationConfig(config: baseConfig)
        
        // 3. 设置SDK代理(可选,用于接收定位回调)
        QGSDKManager.sharedInstance().delegate = self
        
        // 4. 初始化SDK
        QGSDKManager.sharedInstance().initialize(with: config)
    }
    
    // MARK: - QGSDKManagerDelegate
    
    // SDK初始化完成回调
    func sdkManager(_ manager: QGSDKManager, didCompleteInitialization success: Bool, error: Error?) {
        if success {
            print("SDK初始化成功,定位服务已启动")
        } else {
            print("SDK初始化失败: \(error?.localizedDescription ?? "")")
        }
    }
    
    // 位置更新回调
    func sdkManager(_ manager: QGSDKManager, didUpdateLocation location: CLLocation) {
        print("位置更新: 纬度=\(location.coordinate.latitude), 经度=\(location.coordinate.longitude), 精度=\(location.horizontalAccuracy)m")
    }
    
    // 定位失败回调
    func sdkManager(_ manager: QGSDKManager, didFailToUpdateLocationWithError error: Error) {
        print("定位失败: \(error.localizedDescription)")
    }
}

启动界面

在您的ViewController中启动鹅家守护主界面:

Objective-C 示例:

#import <TencentGuardMapSDK/TencentGuardMapSDK.h>

@implementation ViewController

- (void)openFamilyGuardian {
    // 跳转到鹅家守护首页
    QGHomepageViewController *homepageVC = [[QGHomepageViewController alloc] init];
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:homepageVC];
    navController.modalPresentationStyle = UIModalPresentationFullScreen;
    [self presentViewController:navController animated:YES completion:nil];
}

@end

Swift 示例:

import TencentGuardMapSDK

class ViewController: UIViewController {
    
    func openFamilyGuardian() {
        // 跳转到鹅家守护首页
        let homepageVC = QGHomepageViewController()
        let navController = UINavigationController(rootViewController: homepageVC)
        navController.modalPresentationStyle = .fullScreen
        present(navController, animated: true)
    }
}

配置参数说明

QGConfig - 基础配置(必填)

参数名 类型 必填 说明
qimei NSString QIMEI设备标识,用于设备识别
qimei36 NSString QIMEI36设备标识,36位设备唯一标识
installId NSString 设备安装ID,用于标识应用安装实例
appId NSString 应用ID(可选)

QGUserConfig - 用户配置(可选)

用户配置是可选的,SDK支持两种使用方式:

  1. 初始化时设置:如果应用层已有用户信息,可以在初始化时传入
  2. 自动获取:SDK会在运行时自动获取和管理用户信息
参数名 类型 必填 说明
userId NSString 用户成员ID,唯一标识用户
familyId NSString 用户家庭ID,标识所属家庭
careType QGCareType 用户关怀类型,QGCareTypeChild(孩子) 或 QGCareTypeElder(老人)
nickname NSString 用户姓名
age NSInteger 用户年龄
avatar NSString 用户头像URL
makeCall NSString 用户手机号
idCard NSString 用户身份证号

QGSDKManagerDelegate - 定位回调接口

SDK提供代理接口用于接收定位更新和SDK状态变化:

方法名 说明
sdkManager:didCompleteInitialization:error: SDK初始化完成回调
sdkManager:didUpdateLocation: 位置更新回调,返回CLLocation对象
sdkManager:didFailToUpdateLocationWithError: 定位失败回调

使用示例

// 设置代理
[QGSDKManager sharedInstance].delegate = self;

// 实现代理方法
- (void)sdkManager:(QGSDKManager *)manager didUpdateLocation:(CLLocation *)location {
    // 处理位置更新
    NSLog(@"收到位置更新: %.6f, %.6f", 
          location.coordinate.latitude, 
          location.coordinate.longitude);
}

常见问题

初始化相关

Q1: SDK初始化失败怎么办?

A: 请检查以下几点:

  1. 确认必填的设备标识参数是否正确:
    • qimei - QIMEI设备标识
    • qimei36 - QIMEI36设备标识
    • installId - 设备安装ID
  2. 检查网络连接是否正常
  3. 确认应用已获得必要的网络权限
  4. 查看日志输出,确认具体错误信息

Q2: 用户信息什么时候设置?

A: SDK的用户配置是可选的,有两种方式:

  1. 初始化时设置:如果应用层已有用户信息(userId、familyId等),可以在SDK初始化时通过QGUserConfig传入
  2. 自动获取:SDK会在运行时自动获取和管理用户信息

建议做法

  • 如果应用已有完整的用户信息,可以在初始化时设置
  • 如果用户信息需要异步获取,可以不设置userConfig,SDK会自动处理

界面相关

Q3: 无法启动鹅家守护界面?

A: 请确认:

  1. SDK已正确初始化
  2. ViewController类名拼写正确
  3. 应用已获得必要的权限(特别是定位权限)
  4. 检查是否正确导入了SDK头文件

配置相关

Q4: 如何获取设备标识参数?

A: SDK初始化需要三个必填的设备标识参数:

  • qimei:QIMEI设备标识
  • qimei36:QIMEI36设备标识(36位)
  • installId:设备安装ID

这些参数需要通过腾讯的设备标识服务获取,请联系技术支持团队获取集成指引。

Q5: 如何接收定位更新?

A: SDK提供了代理接口用于接收定位更新:

// 1. 设置代理
[QGSDKManager sharedInstance].delegate = self;

// 2. 实现代理方法
- (void)sdkManager:(QGSDKManager *)manager didUpdateLocation:(CLLocation *)location {
    // 收到位置更新,location包含完整的定位信息
    NSLog(@"纬度: %.6f, 经度: %.6f", 
          location.coordinate.latitude, 
          location.coordinate.longitude);
}

- (void)sdkManager:(QGSDKManager *)manager didFailToUpdateLocationWithError:(NSError *)error {
    // 定位失败
    NSLog(@"定位失败: %@", error.localizedDescription);
}

功能相关

Q6: 位置共享功能异常?

A: 请确认:

  1. 应用已获得位置权限(始终允许)
  2. GPS功能已开启
  3. 网络连接正常
  4. 检查Info.plist中的位置权限描述是否正确配置

位置权限申请示例

#import <CoreLocation/CoreLocation.h>

// 申请位置权限
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];

即时通讯功能相关

Q7: 即时通讯功能无法使用?

A: 请确认:

  1. 网络连接正常
  2. 用户已成功登录IM服务
  3. 检查SDK日志输出

技术支持

联系方式

  • 技术支持邮箱:leonwzwang@tencent.com
  • 问题反馈:请通过邮件联系技术支持团队
  • SDK获取:请联系技术支持团队获取SDK及相关文档

版本信息:当前文档基于鹅家守护开放SDK iOS v1.0.0版本编写

更新说明:请定期关注SDK版本更新,获取最新功能和bug修复

版本更新

当前版本:1.0.0

请定期关注SDK版本更新,获取最新功能和bug修复。

版本历史

  • v1.0.0:首个正式版本,提供完整的家庭守护功能,包含位置共享、即时通讯、长连接等核心模块

注意事项

⚠️ 必填参数说明

设备标识参数(必填)

SDK初始化需要以下三个设备标识参数:

  • qimei(QIMEI设备标识)
  • qimei36(QIMEI36设备标识)
  • installId(设备安装ID)

这些参数用于设备识别和服务调用,缺少任何一个参数都会导致SDK初始化失败。

用户配置(可选)

用户配置(QGUserConfig)是可选的,SDK支持两种使用方式:

  1. 初始化时设置用户信息
  2. SDK运行时自动获取用户信息

定位功能

  • 权限申请:SDK需要"始终允许"位置权限才能提供完整的家庭守护功能
  • 后台定位:请在Info.plist中配置UIBackgroundModeslocation模式
  • 定位回调:实现QGSDKManagerDelegate代理方法接收定位更新

数据有效性

如果设置了用户配置,建议遵循以下规范:

  • 年龄应为正整数(大于0)
  • 用户头像应为有效的URL地址
  • 用户ID应为有效的字符串(不为空)

其他注意事项

  • 隐私合规:使用SDK前请确保已获得用户同意,并遵守相关隐私法规
  • 权限申请:请在合适的时机申请必要权限,并向用户说明权限用途
  • 网络环境:SDK需要稳定的网络连接,建议在网络状况良好时使用
  • 设备兼容性:部分功能可能在低端设备上表现不佳,请做好兼容性测试
  • 资源管理:SDK会使用一定的系统资源,请合理管理应用生命周期

资源下载

最后更新时间:2025-12-10



本文档基于鹅家守护开放SDK iOS v1.0.0版本编写,如有疑问请联系技术支持团队。

本页内容