MonitorKit SDK 使用方法

213 阅读2分钟

1、使用准备

联系开发人员获取appId && appKey。

2、项目设置

项目Project,添加Localization:Chinese, Simplified

info.plist中添加以下键值对:

  1. key:ZX_CHANNEL_ID,value:C01-GEztJH0JLdBC
  2. key:Privacy - Photo Library Additions Usage Description,value:使用相册的描述
  3. key:Privacy - Location Always and When In Use Usage Description,value:使用定位的描述
  4. key:Privacy - Contacts Usage Description,value:使用通讯录的描述
  5. Key:Localization native development region,value:China
  6. Key:Application supports iTunes file sharing,value:NO
  7. 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 installpod 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];
}