209 lines
7.1 KiB
Plaintext
209 lines
7.1 KiB
Plaintext
//
|
|
// AIHelpUnity.m
|
|
// AIHelpSupportSDK
|
|
//
|
|
// Created by AIHelp on 2020/8/15.
|
|
// Copyright © 2020 AIHelp. All rights reserved.
|
|
//
|
|
#import "AIHelpUnity.h"
|
|
#import <AIHelpSupportSDK/AIHelpSupportSDK.h>
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#if defined(__cplusplus)
|
|
extern "C" {
|
|
#endif
|
|
|
|
NSString* charToNSString (const char* string)
|
|
{
|
|
if (string){
|
|
return [NSString stringWithUTF8String: string];
|
|
}else{
|
|
return [NSString stringWithUTF8String: ""];
|
|
}
|
|
}
|
|
|
|
const char* NSStringToChar (NSString* string)
|
|
{
|
|
if (string){
|
|
return string.UTF8String;
|
|
}else{
|
|
return @"".UTF8String;
|
|
}
|
|
}
|
|
|
|
AIHelpUserConfig* createUserConfig(const char* userName, const char* serverId, const char* userTags, const char* customData) {
|
|
NSString *_userTags = charToNSString(userTags);
|
|
NSString *_customData = charToNSString(customData);
|
|
|
|
AIHelpUserConfigBuilder *userBuilder = [[AIHelpUserConfigBuilder alloc] init];
|
|
userBuilder.userName = charToNSString(userName);
|
|
userBuilder.serverId = charToNSString(serverId);
|
|
|
|
if ([_userTags componentsSeparatedByString:@","]) {
|
|
userBuilder.userTags = [_userTags componentsSeparatedByString:@","];
|
|
}
|
|
if (_customData && _customData.length) {
|
|
NSData *jsonData = [_customData dataUsingEncoding:NSUTF8StringEncoding];
|
|
NSError *error;
|
|
NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers error:&error];
|
|
if (dic) {
|
|
userBuilder.customData = dic;
|
|
}
|
|
}
|
|
return [userBuilder build];
|
|
}
|
|
|
|
void unity_initiailize (const char* domainName, const char* appId, const char* language) {
|
|
NSString *_domainName = charToNSString(domainName);
|
|
NSString *_appId = charToNSString(appId);
|
|
NSString *_language = charToNSString(language);
|
|
[AIHelpSupportSDK initializeWithDomainName:_domainName appId:_appId language:_language];
|
|
}
|
|
|
|
void unity_registerAsyncEventListener (int eventType, AISupportAsyncEventListener listener) {
|
|
[AIHelpSupportSDK registerAsyncListener:listener eventType:(AIHelpEventType)eventType];
|
|
}
|
|
|
|
void unity_unregisterAsyncEventListener (int eventType) {
|
|
[AIHelpSupportSDK unregisterAsyncListenerWithEvent:(AIHelpEventType)eventType];
|
|
}
|
|
|
|
bool unity_show(const char* entranceId, const char* welcomeMessage) {
|
|
AIHelpApiConfigBuilder *configBuilder = [[AIHelpApiConfigBuilder alloc] init];
|
|
configBuilder.entranceId = charToNSString(entranceId);
|
|
configBuilder.welcomeMessage = charToNSString(welcomeMessage);
|
|
return [AIHelpSupportSDK showWithApiConfig:configBuilder.build];
|
|
}
|
|
|
|
void unity_showSingleFAQ(const char* faqId, int conversationMoment) {
|
|
AIHelpFAQShowConversationMoment moment = AIHelpFAQShowConversationMomentNever;
|
|
switch(conversationMoment){
|
|
case 1:
|
|
moment = AIHelpFAQShowConversationMomentNever;
|
|
break;
|
|
case 2:
|
|
moment = AIHelpFAQShowConversationMomentAlways;
|
|
break;
|
|
case 3:
|
|
moment = AIHelpFAQShowConversationMomentOnlyInAnswerPage;
|
|
break;
|
|
case 4:
|
|
moment = AIHelpFAQShowConversationMomentAfterMarkingUnhelpful;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
[AIHelpSupportSDK showSingleFAQ:charToNSString(faqId) showConversationMoment:moment];
|
|
}
|
|
|
|
void unity_login(const char* userId, const char* userName, const char* serverId, const char* userTags, const char* customData, bool isEnterpriseAuth) {
|
|
NSString *_userId = charToNSString(userId);
|
|
AIHelpUserConfig *_userConfig = createUserConfig(userName, serverId, userTags, customData);
|
|
AIHelpLoginConfigBuilder *builder = [[AIHelpLoginConfigBuilder alloc] init];
|
|
builder.userId = _userId;
|
|
builder.userConfig = _userConfig;
|
|
builder.isEnterpriseAuth = isEnterpriseAuth;
|
|
[AIHelpSupportSDK login:builder.build];
|
|
}
|
|
|
|
void unity_logout() {
|
|
[AIHelpSupportSDK logout];
|
|
}
|
|
|
|
void unity_updateUserInfo(const char* userName, const char* serverId, const char* userTags, const char* customData) {
|
|
AIHelpUserConfig *userConfig = createUserConfig(userName, serverId, userTags, customData);
|
|
[AIHelpSupportSDK updateUserInfo:userConfig];
|
|
}
|
|
|
|
void unity_resetUserInfo () {
|
|
[AIHelpSupportSDK resetUserInfo];
|
|
}
|
|
|
|
void unity_fetchUnreadMessageCount () {
|
|
[AIHelpSupportSDK fetchUnreadMessageCount];
|
|
}
|
|
|
|
void unity_fetchUnreadTaskCount () {
|
|
[AIHelpSupportSDK fetchUnreadTaskCount];
|
|
}
|
|
|
|
void unity_updateSDKLanguage (const char* language) {
|
|
[AIHelpSupportSDK updateSDKLanguage:charToNSString(language)];
|
|
}
|
|
|
|
void unity_setUploadLogPath (const char* path) {
|
|
[AIHelpSupportSDK setUploadLogPath:charToNSString(path)];
|
|
}
|
|
|
|
void unity_setPushTokenAndPlatform (const char* pushToken, int pushPlatform) {
|
|
AIHelpTokenPlatform ePlatform;
|
|
switch (pushPlatform) {
|
|
case 1:
|
|
ePlatform = AIHelpTokenPlatformAPNS;
|
|
break;
|
|
case 2:
|
|
ePlatform = AIHelpTokenPlatformFirebase;
|
|
break;
|
|
case 3:
|
|
ePlatform = AIHelpTokenPlatformJpush;
|
|
break;
|
|
case 4:
|
|
ePlatform = AIHelpTokenPlatformGeTui;
|
|
break;
|
|
case 6:
|
|
ePlatform = AIHelpTokenPlatformHUAWEI;
|
|
break;
|
|
case 7:
|
|
ePlatform = AIHelpTokenPlatformOneSignal;
|
|
break;
|
|
default:
|
|
ePlatform = AIHelpTokenPlatformAPNS;
|
|
break;
|
|
}
|
|
[AIHelpSupportSDK setPushToken:charToNSString(pushToken) pushPlatform:ePlatform];
|
|
}
|
|
|
|
const char* unity_getSDKVersion () {
|
|
NSString *version = [AIHelpSupportSDK getSDKVersion];
|
|
return strdup(NSStringToChar(version));
|
|
}
|
|
|
|
bool unity_isAIHelpShowing () {
|
|
return [AIHelpSupportSDK isAIHelpShowing];
|
|
}
|
|
|
|
void unity_enableLogging (bool enable) {
|
|
[AIHelpSupportSDK enableLogging:enable];
|
|
}
|
|
|
|
void unity_showUrl (const char* url) {
|
|
[AIHelpSupportSDK showUrl:charToNSString(url)];
|
|
}
|
|
|
|
void unity_additionalSupportFor(int countryOrRegion) {
|
|
AIHelpPublishCountryOrRegion tmpCountryOrRegion = AIHelpCN;
|
|
if (countryOrRegion == 1) {
|
|
tmpCountryOrRegion = AIHelpCN;
|
|
}
|
|
if (countryOrRegion == 2) {
|
|
tmpCountryOrRegion = AIHelpIN;
|
|
}
|
|
[AIHelpSupportSDK additionalSupportFor:tmpCountryOrRegion];
|
|
}
|
|
|
|
void unity_close() {
|
|
[AIHelpSupportSDK close];
|
|
}
|
|
|
|
void unity_setSDKInterfaceOrientationMask (int interfaceOrientationMask) {
|
|
[AIHelpSupportSDK setSDKInterfaceOrientationMask:interfaceOrientationMask];
|
|
}
|
|
|
|
void unity_setSDKAppearanceMode (int mode) {
|
|
[AIHelpSupportSDK setSDKAppearanceMode:mode];
|
|
}
|
|
|
|
#if defined(__cplusplus)
|
|
}
|
|
#endif
|