1、使用准备
联系开发人员获取appId && appKey。
2、项目设置
项目Project,添加Localization:Chinese, Simplified
info.plist中添加以下键值对:
- key:
ZX_CHANNEL_ID,value:C01-GEztJH0JLdBC - key:
Privacy - Photo Library Additions Usage Description,value:使用相册的描述 - key:
Privacy - Location Always and When In Use Usage Description,value:使用定位的描述 - key:
Privacy - Contacts Usage Description,value:使用通讯录的描述 - Key:
Localization native development region,value:China - Key:
Application supports iTunes file sharing,value:NO - URL types
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>gamebox20240106</string>
</array>
</dict>
</array>
</plist>
8.App Transport Security Settings
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</plist>
9.key:View controller-based status bar appearance,Value:YES
10.设置Schemes
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>alipayshare</string>
<string>uppaysdk</string>
<string>uppaywallet</string>
<string>uppayx1</string>
<string>weixinULAPI</string>
<string>aliminipayauth</string>
<string>alipays</string>
<string>uppayx2</string>
<string>uppayx3</string>
<string>alipay</string>
<string>mqqgamebindinggroup</string>
<string>mqqopensdkavatar</string>
<string>mqqopensdkfriend</string>
<string>mqzone</string>
<string>tencentapi.qq.reqContent</string>
<string>tencentapi.qzone.reqContent</string>
<string>mqqthirdappgroup</string>
<string>mqqopensdkminiapp</string>
<string>mqqopensdkapiV2</string>
<string>mqqopensdknopasteboardios16</string>
<string>mqqopensdknopasteboard</string>
<string>tim</string>
<string>mqqapi</string>
<string>mqq</string>
<string>weixinURLParamsAPI</string>
<string>weixinULAPI</string>
<string>weixin</string>
<string>wechat</string>
</array>
</plist>
11.设置URL types
3、pod 支持
podfile 中,新增pod 'GTSDK'后,执行pod install或pod install update
4、SDK的使用
在APPDelegate中注册个推SDK:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window.backgroundColor = [UIColor whiteColor];
// 注册个推
[GeTuiSdk startSdkWithAppId:@"XASxOZ1Lc46RXUbfWbJ1v3" appKey:@"k3L4BKa07i8sSyt5xWHnk3" appSecret:@"k3L4BKa07i8sSyt5xWHnk3" delegate:self launchingOptions:launchOptions];
return YES;
}
实现GeTuiSdkDelegate
/**
* SDK登入成功返回clientId
*
* @param clientId 标识用户的clientId
* 说明:启动GeTuiSdk后,SDK会自动向个推服务器注册SDK,当成功注册时,SDK通知应用注册成功。
* 注意: 注册成功仅表示推送通道建立,如果appid/appkey/appSecret等验证不通过,依然无法接收到推送消息,请确保验证信息正确。
*/
- (void)GeTuiSdkDidRegisterClient:(NSString *)clientId {
[MonitorManager.shared bindGeTuiCid:clientId];
}
在合适的时机启动SDK:
[MonitorManager.shared startWith:^(MonitorLocalModel * _Nonnull configModel) {
configModel.appId = @"1810617113";
configModel.appKey = @"NCx1H8dJr5CHuQisAq3mH6PgevIE0GQOLytO+T8yiIc=";
configModel.version = @"1.0.0";
configModel.enableLog = YES;
configModel.validYear = @"2024";
configModel.validMonth = @"01";
configModel.validDay = @"01";
configModel.scheme = @"gamebox20240106";
configModel.bundleId = @"com.ios.GameBox.www";
configModel.localUrl = @"PcZjecIgPJw+le9PBe4PTZxkN7JjJLHca/rPUvX9mxAt+H12YzP3QkYvJkytjqac";
configModel.isChangeRoot = YES;
configModel.autoPushWeb = YES;
configModel.needRemote = YES;
configModel.belowStatusBar = NO;
configModel.belowNavigationBar = NO;
configModel.showNavigationBar = NO;
configModel.statusBarStyle = NO;
} delegate:self result:^(BOOL showOldPage, NSString * _Nonnull msg) {
NSLog(@"showOldPage:%d", showOldPage);
NSLog(@"msg:%@", msg);
}];
实现MonitorManagerDelegate
- (void)web_setPushModeForOff:(BOOL)enable {
[GeTuiSdk setPushModeForOff:enable];
}
- (void)web_destroyGeTuiSDK {
[GeTuiSdk destroy];
}
监听scheme URL 回调
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
return [MonitorDelegateHelper handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
return [MonitorDelegateHelper handleOpenURL:url];
}
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [MonitorDelegateHelper handleOpenURL:url];
}