SDK已集成完整的个人信息处理规则文档,符合《个人信息保护法》等法律法规要求:
在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,请联系技术支持团队获取相关配置信息和访问权限。
在您的AppDelegate或任意合适位置初始化SDK:
#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
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中启动鹅家守护主界面:
#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
import TencentGuardMapSDK
class ViewController: UIViewController {
func openFamilyGuardian() {
// 跳转到鹅家守护首页
let homepageVC = QGHomepageViewController()
let navController = UINavigationController(rootViewController: homepageVC)
navController.modalPresentationStyle = .fullScreen
present(navController, animated: true)
}
}
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| qimei | NSString | 是 | QIMEI设备标识,用于设备识别 |
| qimei36 | NSString | 是 | QIMEI36设备标识,36位设备唯一标识 |
| installId | NSString | 是 | 设备安装ID,用于标识应用安装实例 |
| appId | NSString | 否 | 应用ID(可选) |
用户配置是可选的,SDK支持两种使用方式:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| userId | NSString | 否 | 用户成员ID,唯一标识用户 |
| familyId | NSString | 否 | 用户家庭ID,标识所属家庭 |
| careType | QGCareType | 否 | 用户关怀类型,QGCareTypeChild(孩子) 或 QGCareTypeElder(老人) |
| nickname | NSString | 否 | 用户姓名 |
| age | NSInteger | 否 | 用户年龄 |
| avatar | NSString | 否 | 用户头像URL |
| makeCall | NSString | 否 | 用户手机号 |
| idCard | NSString | 否 | 用户身份证号 |
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);
}
A: 请检查以下几点:
qimei - QIMEI设备标识qimei36 - QIMEI36设备标识installId - 设备安装IDA: SDK的用户配置是可选的,有两种方式:
QGUserConfig传入建议做法:
A: 请确认:
A: SDK初始化需要三个必填的设备标识参数:
这些参数需要通过腾讯的设备标识服务获取,请联系技术支持团队获取集成指引。
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);
}
A: 请确认:
Info.plist中的位置权限描述是否正确配置位置权限申请示例:
#import <CoreLocation/CoreLocation.h>
// 申请位置权限
CLLocationManager *locationManager = [[CLLocationManager alloc] init];
[locationManager requestAlwaysAuthorization];
A: 请确认:
版本信息:当前文档基于鹅家守护开放SDK iOS v1.0.0版本编写
更新说明:请定期关注SDK版本更新,获取最新功能和bug修复
当前版本:1.0.0
请定期关注SDK版本更新,获取最新功能和bug修复。
设备标识参数(必填):
SDK初始化需要以下三个设备标识参数:
qimei(QIMEI设备标识)qimei36(QIMEI36设备标识)installId(设备安装ID)这些参数用于设备识别和服务调用,缺少任何一个参数都会导致SDK初始化失败。
用户配置(可选):
用户配置(QGUserConfig)是可选的,SDK支持两种使用方式:
Info.plist中配置UIBackgroundModes的location模式QGSDKManagerDelegate代理方法接收定位更新如果设置了用户配置,建议遵循以下规范:
最后更新时间:2025-12-10
本文档基于鹅家守护开放SDK iOS v1.0.0版本编写,如有疑问请联系技术支持团队。
有帮助
没帮助