# Uncomment this line to define a global platform for your project # platform :ios, '9.0' # Uncomment this line if you're using Swift # use_frameworks! t arget 'My Sample App' do end
target 'My Sample App' do pod 'ZohoDeskPortalCore' end
target 'My Sample App' do pod 'ZohoDeskPortalServices' end
import ZohoDeskPortalAPIKit
@import ZohoDeskPortalAPIKit;
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)-> Bool { ZohoDeskPortalSDK.initialize(orgID:<#String#>, appID:<#String#>, dataCenter: <#ZDPDataCenter#>) return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { [ZohoDeskPortalSDK initializeWithOrgID:<#NSString#>appID:<#NSString#>dataCenter:<#ZDPDataCenter#>]; return YES; }
import ZohoDeskPortalCore ... ZDPortalHome.show()
@import ZohoDeskPortalCore; ... [ZDPortalHome showWithConfiguration:nil andTitle:nil];
let config = ZDPHomeConfiguration() config.enableHelpCenter = true // disable/enable the Help center (Knowledge Base). config.enableCommunity = false // disable/enable the Community. config.enableCreateTicket = true // disable/enable the CreateTicket. config.enableMyTicket = true // disable/enable My Tickets. ZDPortalHome.show(withConfiguration: config)
ZDPHomeConfiguration * config = [[ZDPHomeConfiguration alloc]init]; config.enableHelpCenter = YES; // disable/enable the Help center (Knowledge Base). config.enableCommunity = NO; // disable/enable the Community. config.enableCreateTicket = YES; // disable/enable the CreateTicket. config.enableMyTicket = YES; // disable/enable My Tickets. [ZDPortalHome showWithConfiguration:config andTitle:<#(NSString * _Nullable)#>];
import ZohoDeskPortalChat ... ZDPortalChat.show()
@import ZohoDeskPortalChat; ... [ZDPortalChat show];
import ZohoDeskPortalKB
@import ZohoDeskPortalKB;
ZDPortakKB.show()
[ZDPortalKB showKnowledgeBaseWithTitle:<#NSString#>];
ZDPortalKB.showCategory(withPermalink: <#String#>)
[ZDPortalKB showCategoryWithPermalink:<#NSString#>withTitle:<#NSString#>];
ZDPortalKB.showArticle(withPermalink : <#String#>)
ZDPortalKB showArticleWithPermalink:<#NSString#>withTitle:<#NSString#>];
import ZohoDeskPortalTicket
@import ZohoDeskPortalTicket;
ZDPortalSubmitTicket.show()
[ZDPortalSubmitTicket showWithTitle:<#NSString#>];
ZDPortalSubmitTicket.showAddTicketForm(completion: { (ticket) in // The ticket parameter contains the details of the ticket created. // Your program logic goes here. }, onError: { error in // error creating Ticket })
[ZDPortalSubmitTicket showAddTicketFormWithTitle:<#(NSString * _Nullable)#> navigationMode:<#(enum ZDPNavigationMode)#> completion:^(ZDPTicket * ticket) { // The ticket parameter contains the details of the ticket created. // Your program logic goes here. } onError:^(NSError * error) { // error creating Ticket }];
ZDPortalTicket.show()
[ZDPortalTicket showWithTitle:<#NSString#>];
import ZohoDeskPortalCommunity
@import ZohoDeskPortalCommunity;
ZDPortalCommunity.show()
[ZDPortalCommunity show];
ZDPortalCommunity.showTopic(withID: <#String#>)
[ZDPortalCommunity showTopicWithID:<#NSString#>];
import ZohoDeskPortalLiveChat
@import ZohoDeskPortalLiveChat;
ZDPortalLiveChat.show()
[ZDPortalLiveChat show];
import ZohoDeskPortalAPIKit
@import ZohoDeskPortalAPIKit;
if !ZohoDeskPortalSDK.isUserLoggedIn{ ZohoDeskPortalSDK.login(withUserToken: String) { (isSuccess: Bool) in // isSuccess shows whether the login attempt was successful // any errors will be logged } }else{ // user logged in already }
if (!ZohoDeskPortalSDK.isUserLoggedIn){ [ZohoDeskPortalSDK loginWithUserToken:<#(NSString * _Nonnull)#> onCompletion:^(BOOL isSuccess) { // isSuccess shows whether the login attempt was successful // any errors will be logged }]; }else{ // user logged in already }
ZohoDeskPortalSDK.logout { (isSuccess: Bool ) in
// isSuccess shows whether the logout attempt was successful
// any errors will be logged
}
[ZohoDeskPortalSDK logoutOnCompletion:^(BOOL isSuccess) { // isSuccess shows whether the logout attempt was successful // any errors will be logged }];
ZohoDeskPortalSDK.clearAllLocalData()
[ZohoDeskPortalSDK clearAllLocalData];
import ZDThemeKit
@import ZDThemeKit;
ZDThemeManager.setTheme(type: .white)
[ZDThemeManager setTheme:ZDThemeTypeWhite];
ZDThemeManager.setTheme(type: .dark)
[ZDThemeManager setTheme:ZDThemeTypeDark];
ZDThemeManager.setTheme(type: .system)
[ZDThemeManager setTheme:ZDThemeTypeSystem];
ZDThemeManager.updateTheme(theme: <#ZDThemeProtocol#>)
[ZDThemeManager updateThemeWithTheme:<#ZDThemeProtocol#>];
ZDThemeManager.updateDarkTheme(theme: <#ZDThemeProtocol#>)
[ZDThemeManager updateDarkThemeWithTheme:<#ZDThemeProtocol#>];
ZDPortalConfiguration.customFontName = <#String#>
ZDPortalConfiguration.customFontName = <#NSString#>;
言語
|
ロケールコード
|
英語(イギリス)
|
en-GB
|
英語(アメリカ)
|
en
|
German
|
de
|
Spanish
|
es
|
Catalan
|
ca-ES
|
French
|
fr
|
French (Canada)
|
fr-CA
|
Italian
|
it
|
Russian
|
ru
|
Chinese (Traditional)
|
zh-Hant
|
Chinese (Simplified)
|
zh-Hans
|
Turkish
|
tr
|
Dutch
|
nl
|
Danish
|
da
|
Portuguese (Portugal)
|
pt-PT
|
Japanese
|
ja
|
Swedish
|
sv
|
Polish
|
pl
|
Arabic
|
ar
|
Hebrew
|
he
|
Afrikaans
|
af
|
Czech
|
cz
|
Bulgarian
|
bg
|
Finnish
|
fi
|
Greek
|
el
|
Hungarian
|
hu
|
Indonesian
|
id
|
Norwegian (Bokmal)
|
nb
|
Romanian
|
ro
|
Thai
|
th
|
Ukrainian
|
uk
|
Vietnamese
|
vi
|
Urdu
|
ur
|
Hindi
|
hi
|
Telugu
|
te
|
Kannada
|
kn
|
Tamil
|
ta
|
Marathi
|
mr
|
Korean
|
ko
|
Persian
|
fa
|
Bengali
|
bn
|
Gujarati
|
gu
|
Malay
|
ms
|
Malayalam
|
ml
|
Slovak
|
sk
|
Croatian
|
hr
|
Slovenian
|
sl
|
ZDPortalConfiguration.setSDKLanguage(<#String#>)
[ZDPortalConfiguration setSDKLanguage:<#NSString#>];
言語
|
ロケールコード
|
英語
|
en
|
ドイツ語
|
de
|
スペイン語
|
es
|
フランス語
|
fr
|
イタリア語
|
it
|
ロシア語
|
ru
|
中国語(繁体字)
|
zh-Hant
|
中国語(簡体字) |
zh-Hans
|
トルコ語
|
tr
|
オランダ語
|
nl
|
デンマーク語
|
da
|
ポルトガル語(ポルトガル)
|
pt-PT
|
日本語
|
ja
|
キー
|
初期設定のテキスト
|
説明
|
DeskPortal.Dashboard.Heading
|
「Welcome」
|
ヘルプセンターのダッシュボードに表示されるテキストです
|
DeskPortal.Dashboard.helpcenter.title
|
「Knowledge Base」
|
ダッシュボード上に表示されるナレッジベースタブのアイコンのタイトルです
|
DeskPortal.Dashboard.helpcenter.description
|
「Browse our extensive repository of help articles」
|
ナレッジベースの説明文です
|
DeskPortal.Dashboard.community.title
|
「Community」
|
ダッシュボード上に表示されるユーザーコミュニティタブのアイコンのタイトルです
|
DeskPortal.Dashboard.community.description
|
「Find and share solutions with the user community」
|
ユーザーコミュニティの説明文です
|
DeskPortal.Dashboard.addticket.title
|
「Submit Ticket」
|
ダッシュボード上に表示される問い合わせの送信タブのアイコンのタイトルです
|
DeskPortal.Dashboard.addticket.description
|
「Seek help from our agents」
|
問い合わせの送信画面の説明文です
|
DeskPortal.Dashboard.myticket.title
|
「My Tickets」
|
ダッシュボード上に表示される自分の問い合わせのアイコンのタイトルです
|
DeskPortal.Dashboard.myticket.description
|
「View and manage tickets that you submitted」
|
自分の問い合わせ画面の説明文です
|
DeskPortal.Helpcenter.article.detail.relatedtitle
|
「Related Articles」
|
ナレッジベース内のヘルプ記事の下部に表示されるテキストです
|
DeskPortal.Helpcenter.article.detail.vote.description
|
「Was this article helpful?」
|
ユーザーのフィードバックを促すテキストです
|
DeskPortal.Helpcenter.feedback.title
|
「Feedback」
|
フィードバックフォームのタイトルです
|
DeskPortal.Helpcenter.feedback.description
|
「We're sorry the article wasn't helpful.」
|
ユーザーが記事に対して低い評価を行った際に表示されるテキストです
|
DeskPortal.Myticket.option.closeticket
|
「Close Ticket」
|
ユーザーが送信した問い合わせを自身で完了できるようにするためのオプションのテキストです
|
DeskPortal.Error.message.reload
|
「Retry」
|
問い合わせを送信できなかった際に表示されるエラーメッセージです
|
DeskPortal.Network.failed.error.message
|
「Check your internet connection」
|
接続が切断された際に表示されるエラーメッセージです
|
DeskPortal.Dashboard.livechat.title
|
「Live Chat」
|
ヘルプセンターのダッシュボード上に表示されるチャットタブのタイトルです
|
DeskPortal.Helpcenter.category.subheading
|
「Section」
|
ナレッジベース内の記事のカテゴリーが1件のみ登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.categories.subheading
|
「Sections」
|
ナレッジベース内の記事のカテゴリーが複数登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.article.detail.title
|
「FAQs」
|
各記事の画面のタイトルです
|
DeskPortal.Addticket.title
|
「Add Ticket」
|
問い合わせの送信フォームのタイトルです
|
DeskPortal.Myticket.comment.option.title
|
「Comment Actions」
|
ユーザーが問い合わせにコメントを追加した際に表示されるオプションメニューのタイトルです
|
DeskPortal.Myticket.option.editcomment
|
「Edit Comment」
|
ユーザーがコメントした内容を自身で編集できるようにするためのオプションのテキストです
|
DeskPortal.Helpcenter.article.subheading
|
「Article」
|
記事のカテゴリーに記事が1件のみ登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.articles.subheading
|
「Articles」
|
記事のカテゴリーに記事が複数登録されている場合に表示されるテキストです
|
func application(_ application: UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { let token = deviceToken.reduce("", {$0 + String(format: "%02X", $1)}).uppercased() ZohoDeskPortalSDK.enablePushNotification(deviceToken:token, mode: .production) }
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSString * token = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""]; [ZohoDeskPortalSDK enablePushNotificationWithDeviceToken:token isTestDevice:NO mode:APNSModeProduction]; }
import ZohoDeskPortalConfiguration ... func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) { ZDPortalConfiguration.processRemoteNotification(userInfo: userInfo) }
@import ZohoDeskPortalConfiguration; ... - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ [ZDPortalConfiguration processRemoteNotificationWithUserInfo:userInfo]; }
import ZohoDeskPortalChat ... ZDPortalChat.setGuestUser(email:<#Guest_User_Email#>, displayName:<#Guest_User_DisplayName#>", phoneNumber: <#Guest_User_PhoneNumber#>")
@import ZohoDeskPortalChat; ... [ZDPortalChat setGuestUserWithEmail:<#Guest_User_Email#>displayName:<#Guest_User_DisplayName#>phoneNumber:<#Guest_User_PhoneNumber#>];
import ZohoDeskPortalAPIKit
@import ZohoDeskPortalAPIKit;
ZohoDeskPortalSDK.getDepartments(onCompletion: { (departments, error) in // on success, departments will return an array, error will return nil // on failure, error will return a value, departments will return nil }
ZohoDeskPortalSDK getDepartmentsOnCompletion:^(NSArray * departments, NSError * error) { // on success, departments will return an array, error will return nil // on failure, error will return a value, departments will return nil }];
ZohoDeskPortalSDK.getProducts(inDepartmentID: String, [String: Any]?){ (products, error) in // on success, products will return an array, error will return nil // on failure, error will return a value, products will return nil }
[ZohoDeskPortalSDK getProductsInDepartmentID:<#NSString#>params:<#NSDictionary#>onCompletion:^(NSArray * products, NSError * error) { // on success, products will return an array, error will return nil // on failure, error will return a value, products will return nil }];
ZohoDeskPortalSDK.Ticket.getFields([String: Any]?){ (fields, error) in // on success, fields will return an array, error will return nil // on failure, error will return a value, products will return nil }
[ZohoDeskPortalSDKTicket getFields:<#(NSDictionary * _Nullable)#>onCompletion:^(NSArray * fields, NSError * error) { // on success, fields will return an array, error will return nil // on failure, error will return a value, fields will return nil }];
ZohoDeskPortalSDK.Ticket.addAttachment(with:<#Data#>, andName:<#String#>, using: <#ZDPUploaderDelegate?#>) { (attachment, error) in // on success, attachment will return a value, error will return nil // on failure, error will return a value, attachment will return nil }
[ZohoDeskPortalSDKTicket addAttachmentWith:<#NSData#>andName:<#NSString#>using:<#(id _Nullable)#>onCompletion:^(ZDPortalAttachment * attachment, NSError * error) { // on success, attachment will return a value, error will return nil // on failure, error will return a value, attachment will return nil }];
if ZohoDeskPortalSDK.isUserLoggedIn { ZohoDeskPortalSDK.Ticket.add(withFields:<#T##[String : Any]#>) { (ticket, error) in // on success, ticket will return an object, error will return nil // on failure, error will return a value, ticket will return nil } } else { ZohoDeskPortalSDK.Ticket.addAsGuest(withFields: <#T##[String : Any]#>) { (ticketNumber, error) in // on success, ticketNumber will return a string value, error will return nil // on failure, error will return a value, ticketNumber will return nil } }
if (ZohoDeskPortalSDK.isUserLoggedIn) { [ZohoDeskPortalSDKTicket addWithFields:<#(NSDictionary * _Nonnull)#>onCompletion:^(ZDPTicket * ticket, NSError * error) { // on success, ticket will return an object, error will return nil // on failure, error will return a value, ticket will return nil }]; }else{ [ZohoDeskPortalSDKTicket addAsGuestWithFields:<#(NSDictionary * _Nonnull)#>onCompletion:^(NSString * ticketNumber, NSError * error) { // on success, ticketNumber will return a string value, error will return nil // on failure, error will return a value, ticketNumber will return nil }] }
ZDPCommunityConfiguration.isTopicEditAllowed = <#Bool#> ZDPCommunityConfiguration.isTopicDeleteAllowed = <#Bool#> ZDPCommunityConfiguration.isReplyAllowed = <#Bool#> ZDPCommunityConfiguration.iReplyEditAllowed = <#Bool#> ZDPCommunityConfiguration.isReplyDeleteAllowed = <#Bool#>
ZDPCommunityConfiguration.isTopicEditAllowed = <#Bool#>; ZDPCommunityConfiguration.isTopicDeleteAllowed = <#Bool#>; ZDPCommunityConfiguration.isReplyAllowed = <#Bool#>; ZDPCommunityConfiguration.iReplyEditAllowed = <#Bool#>; ZDPCommunityConfiguration.isReplyDeleteAllowed = <#Bool#>;
ZohoDeskPortalSDK.Community.getMostPopularTopics(<#[String:Any]?#>) { (result: Result<[ZDPCommunity.TopicDetail], ZDPError>) in // switch on result to get array of topics on success }
[ZohoDeskPortalSDKCommunity getMostPopularTopics:<#(NSDictionary * _Nullable)#>onCompletion:^(NSArray * topics, NSError * error) { // on success, topics will return an array, error will return nil // on failure, error will return a value, topics will return nil }];
ZohoDeskPortalSDK.Community.getMostDiscussedTopics(<#[String:Any]?#>) { (topics, error) in // on success, topics will return an array, error will return nil // on failure, error will return a value, products will return nil }
[ZohoDeskPortalSDKCommunity getMostDisuccedTopics:<#(NSDictionary * _Nullable)#>onCompletion:^(NSArray * topics, NSError * error) { // on success, topics will return an array, error will return nil // on failure, error will return a value, topics will return nil }];
ZDPortalSubmitTicket.setFieldsListTobeShown(fields: <#[ZDVisibleTicketField]#>)
[ZDPortalSubmitTicket setFieldsListTobeShownWithFields:<#(NSArray * _Nonnull)#>];
ZDPortalSubmitTicket.preFillTicketFields(forForms: <#[ZDCustomizedTicketForm]#>)
[ZDPortalSubmitTicket preFillTicketFieldsForForms:<#[ZDCustomizedTicketForm]#>];
ZDPTicketConfiguration.isCommentAllowed = <#Bool#> ZDPTicketConfiguration.isCommentDeleteAllowed = <#Bool#> ZDPTicketConfiguration.isCommentEditAllowed = <#Bool#> ZDPTicketConfiguration.isReplyAllowed = <#Bool#> ZDPTicketConfiguration.isTicketUpdateAllowed = <#Bool#>
ZDPTicketConfiguration.isCommentAllowed = YES; ZDPTicketConfiguration.isCommentDeleteAllowed = YES; ZDPTicketConfiguration.isCommentEditAllowed = YES; ZDPTicketConfiguration.isReplyAllowed = YES; ZDPTicketConfiguration.isTicketUpdateAllowed = YES;
import ZohoDeskPortalAPIKit ... var body = [String : Any]() body["displayName"] = "displayName" body["mobile"] = "123456" ZohoDeskPortalSDK.updateUserInformation(with: body) { (profile, error) in { // on success only profile will return a value, error will return nil // on failure only error will return a value, profile will return nil }
NSMutableDictionary * body = [NSMutableDictionary new]; [body setObject:@"displayName" forKey:@"displayName"]; [body setObject:@"123456" forKey:@"mobile"]; [ZohoDeskPortalSDK updateUserInformationWith:body onCompletion:^(Profile * profile, NSError * error) { // on success only profile will return a value, error will return nil // on failure only error will return a value, profile will return nil }];
import ZohoDeskPortalAPIKit ... ZohoDeskPortalSDK.disableLogs()
@import ZohoDeskPortalAPIKit; ... [ZohoDeskPortalKit disableLogs]
# Uncomment this line to define a global platform for your project # platform :ios, '9.0' # Uncomment this line if you're using Swift # use_frameworks! target 'My Sample App' do end
target 'My Sample App' do pod 'ZohoDeskPortalSDK', :git => ' https://github.com/zoho/ZohoDeskPortalSDK.git ' end
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/ ZohoDeskPortalSDK.framework/strip-frameworks.sh "
import ZohoDeskPortalSDK
@import ZohoDeskPortalSDK;
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?)-> Bool { let config = ZDPortalConfiguration() config.enableHelpCenter = true config.enableCreateTicket = true config.enableMyTicket = true config.enableCommunity = false ZohoDeskPortalSDK.initializeSDK(<#ORGID#>, appId: <#APPID#>, dataCenter: <#dataCenterValue#>, configuration: <#config#>) return true }
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { ZDPortalConfiguration * config = [[ZDPortalConfiguration alloc]init]; config.enableHelpCenter = YES; config.enableCommunity = YES; config.enableCreateTicket = YES; config.enableMyTicket = YES; [ZohoDeskPortalSDK initializeSDK:<#ORGID#> appId:<#APPID#> dataCenter:<#dataCenterValue#> configuration:<#config#>]; return YES; }
ZohoDeskPortalSDK.showHomePage(controller: self)
[ZohoDeskPortalSDK showHomePageWithController:self];
let config = ZDPortalConfiguration() config.enableHelpCenter = true // disable/enable the Help center (Knowledge Base). config.enableCommunity = false // disable/enable the Community. config.enableCreateTicket = true // disable/enable the CreateTicket. config.enableMyTicket = true // disable/enable My Tickets. ZohoDeskPortalSDK.showHomePage(controller: self, withConfiguration: config)
ZDPortalConfiguration * config = [[ZDPortalConfiguration alloc]init]; config.enableHelpCenter = YES; // disable/enable the Help center (Knowledge Base). config.enableCommunity = NO; // disable/enable the Community. config.enableCreateTicket = YES; // disable/enable the CreateTicket. config.enableMyTicket = YES; // disable/enable My Tickets. [ZohoDeskPortalSDK showHomePageWithController:self withConfiguration:config];
ZohoDeskPortalSDK.showLiveChat(controller: self)
[ZohoDeskPortalSDK showLiveChatWithController:self];
ZohoDeskPortalSDK.showHelpCenter(controller: self)
[ZohoDeskPortalSDK showHelpCenterWithController:self];
ZohoDeskPortalSDK.addTicket(controller: self)
[ZohoDeskPortalSDK addTicketWithController:self];
ZohoDeskPortalSDK.addTicket(controller: self, onCompletion: { (ticketDetail) in // The ticketDetail parameter contains the details of the ticket created. // Your program logic goes here. }) { (error) in // error creating Ticket }
[ZohoDeskPortalSDK addTicketWithController:self onCompletion:^(TicketDetailJsonObject * ticket) { // The ticketDetail parameter contains the details of the ticket created. // Your program logic goes here. } onError:^(NSError * error) { // error creating Ticket }];
ZohoDeskPortalSDK.ticketList(controller: self)
[ZohoDeskPortalSDK ticketListWithController:self];
ZohoDeskPortalSDK.showCommunity(controller: self)
[ZohoDeskPortalSDK showCommunityWithController:self];
if !ZohoDeskPortalSDK.isZDUserSignedIn{ ZohoDeskPortalSDK.set(jwtUserIdentifier: <#Remote user Token#>, onCompletion: { }, onError: { (error) in }) }else{ //User already signed into SDK }
if (![ZohoDeskPortalSDK isZDUserSignedIn]){ [ZohoDeskPortalSDK setWithJwtUserIdentifier:<#Remote user Token#> onComplition:^{ } onError:^(NSError * error) { }]; }else{ //User already signed into SDK }
ZohoDeskPortalSDK.logout()
[ZohoDeskPortalSDK logout];
ZohoDeskPortalSDK.clearAllLocalData()
[ZohoDeskPortalSDK clearAllLocalData];
let config = ZDPortalConfiguration() config.enableHelpCenter = false // disable the Help center (Knowledge Base). config.enableCommunity = false // disable the Community. config.enableCreateTicket = false // disable the CreateTicket. config.enableMyTicket = false // disable My Tickets. config.showLeftMenu = true // enable/disable left Menu
ZDPortalConfiguration * config = [[ZDPortalConfiguration alloc]init]; config.enableHelpCenter = NO; // disable the Help center (Knowledge Base). config.enableCommunity = NO; // disable the Community. config.enableCreateTicket = NO; // disable the CreateTicket. config.enableMyTicket = NO; // disable My Tickets. config.showLeftMenu = YES; // enable/disable left Menu
ZDTheme.applyTheme(theme: .white)
[ZDTheme applyThemeWithTheme:ZDThemeTypeWhite];
ZDTheme.applyTheme(theme: .dark)
[ZDTheme applyThemeWithTheme:ZDThemeTypeDark];
let articleTheme = ZDThemeArticle.init() articleTheme.tintColor = UIColor.white articleTheme.primaryTextColor = UIColor.white articleTheme.secondryTextColor = UIColor(red:0.12, green:0.13, blue:0.15, alpha:1.00) articleTheme.primaryBackgroundColor = UIColor(red:0.12, green:0.13, blue:0.15, alpha:1.00) articleTheme.secondryBackgroundColor = UIColor(red:0.12, green:0.13, blue:0.15, alpha:1.00) articleTheme.cellSeporatorColor = UIColor(red:0.12, green:0.13, blue:0.15, alpha:1.00) articleTheme.headerColor = UIColor(red:0.13, green:0.18, blue:0.15, alpha:1.00)
ZDThemeArticle * articleTheme = [ZDThemeArticle init]; articleTheme.tintColor = [UIColor whiteColor]; articleTheme.primaryTextColor = [UIColor whiteColor]; articleTheme.secondryTextColor = [UIColor colorWithRed:0.12 green:0.13 blue:0.15 alpha:1.00]; articleTheme.primaryBackgroundColor = [UIColor colorWithRed:0.12 green:0.13 blue:0.15 alpha:1.00]; articleTheme.secondryBackgroundColor = [UIColor colorWithRed:0.12 green:0.13 blue:0.15 alpha:1.00]; articleTheme.cellSeporatorColor = [UIColor colorWithRed:0.12 green:0.13 blue:0.15 alpha:1.00]; articleTheme.headerColor = [UIColor colorWithRed:0.12 green:0.13 blue:0.15 alpha:1.00];
ZDNavigationTheme.navigationBarColor = UIColor.blue ZDNavigationTheme.titleColor = UIColor.white ZDNavigationTheme.barButtonTextColor = UIColor.white ZDNavigationTheme.translucent = false ZDNavigationTheme.statusBarApperance = .lightContent ZDNavigationTheme.backButtonStyle = ZDNavigationBackButtonStyle.icon
[ZDNavigationTheme setNavigationBarColor:[UIColor blueColor]]; [ZDNavigationTheme setTitleColor:[UIColor blueColor]]; [ZDNavigationTheme setBarButtonTextColor:[UIColor blueColor]]; [ZDNavigationTheme setTranslucent:NO]; [ZDNavigationTheme setStatusBarApperance:UIStatusBarStyleLightContent]; [ZDNavigationTheme setBackButtonStyle:ZDNavigationBackButtonStyleIcon];
let font = ZDCustomFont() font.fontFamilyName = "ProximaNova" font.regularFontName = "ProximaNova-reg" font.lightFontName = "ProximaNova-light" font.boldFontName = "ProximaNova-Bold" font.mediumFontName = "ProximaNova-Bold"
ZDCustomFont * font = [ZDCustomFont init]; font.fontFamilyName = @"ProximaNova"; font.regularFontName = @"ProximaNova-reg"; font.lightFontName = @"ProximaNova-light"; font.boldFontName = @"ProximaNova-Bold"; font.mediumFontName = @"ProximaNova-Bold";
ZDPortalConfiguration.setSDKLanguage = "en"
ZDPortalConfiguration.setSDKLanguage = @"en";
言語
|
ロケールコード
|
英語
|
en
|
ドイツ語
|
de
|
スペイン語
|
es
|
フランス語
|
fr
|
イタリア語
|
it
|
ロシア語
|
ru
|
中国語
|
zh
|
トルコ語
|
tr
|
オランダ語
|
nl
|
デンマーク語
|
da
|
ポルトガル語
|
pt
|
日本語
|
ja
|
キー
|
初期設定のテキスト
|
説明
|
DeskPortal.Dashboard.Heading
|
「Welcome」
|
ヘルプセンターのダッシュボードに表示されるテキストです
|
DeskPortal.Dashboard.helpcenter.title
|
「Knowledge Base」
|
ダッシュボード上に表示されるナレッジベースタブのアイコンのタイトルです
|
DeskPortal.Dashboard.helpcenter.description
|
「Browse our extensive repository of help articles」
|
ナレッジベースの説明文です
|
DeskPortal.Dashboard.community.title
|
「Community」
|
ダッシュボード上に表示されるユーザーコミュニティタブのアイコンのタイトルです
|
DeskPortal.Dashboard.community.description
|
「Find and share solutions with the user community」
|
ユーザーコミュニティの説明文です
|
DeskPortal.Dashboard.addticket.title
|
「Submit Ticket」
|
ダッシュボード上に表示される問い合わせの送信タブのアイコンのタイトルです
|
DeskPortal.Dashboard.addticket.description
|
「Seek help from our agents」
|
問い合わせの送信画面の説明文です
|
DeskPortal.Dashboard.myticket.title
|
「My Tickets」
|
ダッシュボード上に表示される自分の問い合わせのアイコンのタイトルです
|
DeskPortal.Dashboard.myticket.description
|
「View and manage tickets that you submitted」
|
自分の問い合わせ画面の説明文です
|
DeskPortal.Helpcenter.article.detail.relatedtitle
|
「Related Articles」
|
ナレッジベース内のヘルプ記事の下部に表示されるテキストです
|
DeskPortal.Helpcenter.article.detail.vote.description
|
「Was this article helpful?」
|
ユーザーのフィードバックを促すテキストです
|
DeskPortal.Helpcenter.feedback.title
|
「Feedback」
|
フィードバックフォームのタイトルです
|
DeskPortal.Helpcenter.feedback.description
|
「We're sorry the article wasn't helpful.」
|
ユーザーが記事に対して低い評価を行った際に表示されるテキストです
|
DeskPortal.Myticket.option.closeticket
|
「Close Ticket」
|
ユーザーが送信した問い合わせを自身で完了できるようにするためのオプションのテキストです
|
DeskPortal.Error.message.reload
|
「Retry」
|
問い合わせを送信できなかった際に表示されるエラーメッセージです
|
DeskPortal.Network.failed.error.message
|
「Check your internet connection」
|
接続が切断された際に表示されるエラーメッセージです
|
DeskPortal.Dashboard.livechat.title
|
「Live Chat」
|
ヘルプセンターのダッシュボード上に表示されるチャットタブのタイトルです
|
DeskPortal.Helpcenter.category.subheading
|
「Section」
|
ナレッジベース内の記事のカテゴリーが1件のみ登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.categories.subheading
|
「Sections」
|
ナレッジベース内の記事のカテゴリーが複数登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.article.detail.title
|
「FAQs」
|
各記事の画面のタイトルです
|
DeskPortal.Addticket.title
|
「Add Ticket」
|
問い合わせの送信フォームのタイトルです
|
DeskPortal.Myticket.comment.option.title
|
「Comment Actions」
|
ユーザーが問い合わせにコメントを追加した際に表示されるオプションメニューのタイトルです
|
DeskPortal.Myticket.option.editcomment
|
「Edit Comment」
|
ユーザーがコメントした内容を自身で編集できるようにするためのオプションのテキストです
|
DeskPortal.Helpcenter.article.subheading
|
「Article」
|
記事のカテゴリーに記事が1件のみ登録されている場合に表示されるテキストです
|
DeskPortal.Helpcenter.articles.subheading
|
「Articles」
|
記事のカテゴリーに記事が複数登録されている場合に表示されるテキストです |
func application(_ application: UIApplication,didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { let token = deviceToken.reduce("", {$0 + String(format: "%02X", $1)}).uppercased() ZohoDeskPortalSDK.enablePushNotification(deviceToken:token, mode: .production) }
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSString * token = [[[[deviceToken description] stringByReplacingOccurrencesOfString: @"<" withString: @""] stringByReplacingOccurrencesOfString: @">" withString: @""] stringByReplacingOccurrencesOfString: @" " withString: @""]; [ZohoDeskPortalSDK enablePushNotificationWithDeviceToken:token isTestDevice:NO mode:APNSModeProduction]; }
func application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable : Any]) { ZohoDeskPortalSDK.processRemoteNotification(userInfo: userInfo) }
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler{ [ZohoDeskPortalSDK processRemoteNotificationWithUserInfo:userInfo]; }
ZDPortalConfiguration.setGuestUser(email: <#Guest_User_Email#>, displayName: <#Guest_User_DisplayName#>", phoneNumber: <#Guest_User_PhoneNumber#>")
[ZDPortalConfiguration setGuestUserWithEmail:<#Guest_User_Email#> displayName:<#Guest_User_DisplayName#> phoneNumber:<#Guest_User_PhoneNumber#>];
ZDProvoider.sharedInstance.getDepartments(onCompletion: { (departments) in // get departments list in departments variable }) { (error) in // error in departments fetch }
[[ZDProvoider sharedInstance] getDepartmentsOnCompletion:^(NSArray<DepartmentJsonObject *> * departments) { // get departments list in departments variable } onError:^(NSError * error) { // error in departments fetch }];
ZDProvoider().getProductsFor(<#Department ID#>, from: <#T##Int#>, limit: <#T##Int#>, onCompletion: { (products) in // get products list in products variable }) { (error) in // error in products fetch }
[ZDProvoider sharedInstance] getProductsFor:@"Department ID" from:<#(NSInteger)#> limit:<#(NSInteger)#> onCompletion:^(NSArray products) { // get products list in products variable } onError:^(NSError * error) { // error in products fetch }
ZDProvoider.sharedInstance.getTicketForm(<#Department ID#>, onCompletion: { (ticketFilelds) in // get Ticket Form in ticketFilelds variable }) { (error) in // error in TicketForm fetch }
[[ZDProvoider sharedInstance] getTicketForm:<#Department ID#> onCompletion:^(NSArray<TicketFieldsJsonObject *> * ticketFilelds) { // get Ticket Form in ticketFilelds variable } onError:^(NSError * error) { // error in TicketForm fetch }];
ZDProvoider.sharedInstance.uploadTicketAttachment(<#Your File path#>, onCompletion: { (attachement) in // get uploaded attachement object in attachement variable }) { (error) in // error in Attachement upload }
[[ZDProvoider sharedInstance] uploadTicketAttachment:<#Your File path#> onCompletion:^(AttachmentJsonObject * attachement) { // get Ticket Form in ticketFilelds variable } onError:^(NSError * error) { // error in Attachement upload }];
let ticketForm = ZDTicketForm() ticketForm.emailID = <#User email ID#> ticketForm.contactName = <#Contact Name#> ticketForm.subject = <#Ticket Subject#> ticketForm.departmentID = <#Ticket Department ID#> ticketForm.descriptionText = <#Ticket Description Text#> ZDProvoider.sharedInstance.createTicket(form: ticketForm, onCompletion: { (ticket) in // get created ticket object in ticketDetail variable }) { (error) in // error in ticket submission }
ZDTicketForm * ticketForm = [ZDTicketForm init]; [ticketForm setEmailID:<#User email ID#>]; [ticketForm setContactName:<#Contact Name#>]; [ticketForm setSubject:<#Ticket Subject#>]; [ticketForm setDepartmentID:<#Ticket Department ID#>]; [ticketForm setDescriptionText:<#Ticket Description Text#>]; [[ZDProvoider sharedInstance] createTicketWithForm:ticketForm onCompletion:^(TicketDetailJsonObject * ticket) { // get created ticket object in ticketDetail variable } onError:^(NSError * error) { // error in ticket submission }]
ZohoDeskPortalSDK.showCatgoryByPermalink(forPermaLink:"permalink", controller: self)
[ZohoDeskPortalSDK showCatgoryByPermalinkForPermaLink:@"permalink" controller:self];
ZohoDeskPortalSDK.showHelpPage(forPermaLink: "permalink", controller: self)
[ZohoDeskPortalSDK showHelpPageForPermaLink:@"permalink" controller:self];
ZDCommunityConfiguration.configure.isTopicDeleteAllowed = true ZDCommunityConfiguration.configure.isTopicEditAllowed = true ZDCommunityConfiguration.configure.isReplyDeleteAllowed = true ZDCommunityConfiguration.configure.isReplyEditAllowed = true ZDCommunityConfiguration.configure.isReplyAllowed = true
[ZDCommunityConfiguration configure].isTopicDeleteAllowed = YES; [ZDCommunityConfiguration configure].isTopicEditAllowed = YES; [ZDCommunityConfiguration configure].isReplyDeleteAllowed = YES; [ZDCommunityConfiguration configure].isReplyEditAllowed = YES; [ZDCommunityConfiguration configure].isReplyAllowed = YES;
ZDProvoider.sharedInstance.getZDMostPopularCommunityTopics(forCategory: "Your Category ID", filterType: "ALL", from: 1, limit: 10, includeCount: false, { (communityTopics) in // get most popular topic list in communityTopics callback }) { (error) in // error }
[[ZDProvoider sharedInstance] getZDMostPopularCommunityTopicsForCategory:@"Your Catehory ID" filterType:@"ALL" from:1 limit:10 includeCount:NO :^(NSArray communityTopics) { // get most popular topic list in communityTopics callback } onError:^(NSError * error) { // error }];
ZDProvoider.sharedInstance.getZDMostDiscussedCommunityTopics(forCategory: "Your Category ID", filterType: "ALL", from: 1, limit: 10, includeCount: false, { (communityTopics) in // get most discussed topic list in communityTopics callback }) { (error) in // error }
[[ZDProvoider sharedInstance] getZDMostDiscussedCommunityTopicsForCategory:@"Your Catehory ID" filterType:@"ALL" from:1 limit:10 includeCount:NO :^(NSArray communityTopics) { // get most discussed topic list in communityTopics callback } onError:^(NSError * error) { // error }];
ZDTicketConfiguration.configure.isCommentAllowed = true ZDTicketConfiguration.configure.isCommentDeleteAllowed = true ZDTicketConfiguration.configure.isCommentEditAllowed = true ZDTicketConfiguration.configure.isReplyAllowed = true ZDTicketConfiguration.configure.isTicketUpdateAllowed = true
ZDTicketConfiguration.configure.isCommentAllowed = YES; ZDTicketConfiguration.configure.isCommentDeleteAllowed = YES; ZDTicketConfiguration.configure.isCommentEditAllowed = YES; ZDTicketConfiguration.configure.isReplyAllowed = YES; ZDTicketConfiguration.configure.isTicketUpdateAllowed = YES;
var body = [String : Any]() body["displayName"] = "displayName" body["mobile"] = "123456" ZDProvoider.sharedInstance.UpdateUserInformation(userInfo: body, { (userInfo) in // get updated user information in userInfo variable }) { (error) in // error }
NSMutableDictionary * body = [NSMutableDictionary new]; [body setObject:@"displayName" forKey:@"displayName"]; [body setObject:@"123456" forKey:@"mobile"]; [[ZDProvoider sharedInstance] UpdateUserInformationWithUserInfo:body :^(NSDictionary * userInfo) { // get updated user information in userInfo variable } onError:^(NSError * error) { // error }];
ZDPortalConfiguration.enableLogMessages = true
ZDPortalConfiguration.enableLogMessages = YES;
ZohoDeskPortalSDK.dismissController {(controller) in // You can find dismissed from ZohoDeskPortalSDK using ZDViewController object switch controller{ case .DashBoard: print("DashBoard") default: break } }
[ZohoDeskPortalSDK dismissControllerOnCompletion:^(enum ZDViewController controller) { switch (controller) { case ZDViewControllerDashBoard: NSLog(@"DashBoard"); default: break; } }];
ZohoDeskPortalSDK.logout(onComplition: { print("User sucessfully logged out") }) { (error) in print(error) }
[ZohoDeskPortalSDK logoutOnComplition:^{ // } onError:^(NSError * error) { // }];
ZohoDeskPortalSDK.ZDAnalyticsTracker { (analyticsObject) in if analyticsObject?.getEventAction() == .KBArticleClicked{ print("An Article is clicked.") //An Article is clicked.You can Log or Push this to any of the Analytics tools. }else if analyticsObject?.getEventAction() == .CommunityTopicClicked{ print("A Topic is clicked.") //A topic is clicked.You can Log or Push this to any of the Analytics tools. } }
[ZohoDeskPortalSDK ZDAnalyticsTrackerOnCompletion:^(ZDAnalytics * analyticsObject) { if ([analyticsObject getEventAction] == ZDPortalUIActionKBArticleClicked) { NSLog(@"An Article is clicked."); //An Article is clicked.You can Log or Push this to any of the Analytics tools. }else if ([analyticsObject getEventAction] == ZDPortalUIActionCommunityTopicClicked) { NSLog(@"A Topic is clicked."); //A topic is clicked.You can Log or Push this to any of the Analytics tools. } }];
if !ZohoDeskPortalSDK.isZDUserSignedIn || !ZohoDeskPortalSDK.isZDSDKMigratedTo1_0{ ZohoDeskPortalSDK.set(jwtUserIdentifier: <#Remote user Token#>, onComplition: { }, onError: { (error) in }) }else{ //User already signed into SDK }
if (![ZohoDeskPortalSDK isZDUserSignedIn] || ![ZohoDeskPortalSDK isZDSDKMigratedTo1_0]){ [ZohoDeskPortalSDK setWithJwtUserIdentifier:<#Remote user Token#> onComplition:^{ } onError:^(NSError * error) { }]; }else{ //User already signed into SDK }
ZDNavigationTheme.backButtonStyle = ZDNavigationBackButtonStyle.icon
[ZDNavigationTheme setBackButtonStyle:ZDNavigationBackButtonStyleIcon];
バージョン1.x
|
バージョン2.0
|
pod 'ZohoDeskPortalSDK', :git => '
https://github.com/zoho/ZohoDeskPortalSDK.git
'end
|
pod 'ZohoDeskPortalServices'
|
「AppDelegate.swift」にて
|
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalAPIKit
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalCore
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalKB
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalTicket
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalTicket
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalCommunity
|
バージョン1.x
|
バージョン2.0
|
ZohoDeskPortalSDK.set(jwtUserIdentifier: _, onCompletion: _ -> (), onError: _ -> () )
|
ZohoDeskPortalSDK.loginUser(withJWTidentifier: <#String#>, onCompletion: (Bool) -> Void)
|
バージョン1.x
|
バージョン2.0
|
ZohoDeskPortalSDK.isZDUserSignedIn
|
ZohoDeskPortalSDK.isUserLoggedIn
|
ユーザーをSDKからログアウトさせるには
|
|
ZohoDeskPortalSDK.logout()
|
ZohoDeskPortalSDK.logout(onCompletion: (Bool) -> Void)
|
//現時点ではカスタマイズは省略
|
|
バージョン1.x
|
バージョン2.0
|
ZohoDeskPortalSDK.enablePushNotifications(deviceToken: _, mode: )
|
ZohoDeskPortalSDK.enablePushNotification(deviceToken:token, mode: .production)
|
SDKに通知を把握させるには、「AppDelegate.swift」にて
|
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalConfiguration
|
//チャット内でゲストを設定します
|
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalKB
|
バージョン1.x
|
バージョン2.0
|
import ZohoDeskPortalSDK
|
import ZohoDeskPortalKB
|
バージョン1.x
|
バージョン2.0
|
ZDCommunityConfiguration.configure.isTopicDeleteAllowed = true
|
ZDPCommunityConfiguration.isTopicEditAllowed = <#Bool#>
|
バージョン1.x
|
バージョン2.0
|
ZDProvoider.sharedInstance.getZDMostPopularCommunityTopics( with all parameters)
|
ZohoDeskPortalSDK.Community.getMostPopularTopics(<#[String: Any]?#>, onCompletion: <#Result<[ZDPCommuity.TopicDetail], ZDPError> -> Void#>
|
バージョン1.x
|
バージョン2.0
|
ZDProvoider.sharedInstance.getZDMostDiscussedCommunityTopics( with all parameters)
|
ZohoDeskPortalSDK.Community.getMostDiscussedTopics(<#[String: Any]?#>, onCompletion: <#Result<[ZDPCommuity.TopicDetail], ZDPError> -> Void#>
|
ticket configuration - same as community configuration - static changes pending
|
|
バージョン1.x
|
バージョン2.0
|
ZDProvoider.sharedInstance.UpdateUserInformation(userInfo: <#data#>, onCompletion: _ -> (), onError: _ -> ())
|
ZohoDeskPortalSDK.updateUserInformation(with: [String: String], onCompletion: (Result) -> Void)
|
バージョン1.x
|
バージョン2.0
|
ZDPortalConfiguration.enableLogMessages = true
|
ZohoDeskPortalSDK.enableLogs()
|
バージョン1.x
|
バージョン2.0
|
ZDPortalConfiguration.enableLogMessages = false
|
ZohoDeskPortalSDK.disableLogs()
|
「導入したばかりで基本操作や設定に不安がある」、「短期間で集中的に運用開始できる状態にしたい」、「運用を開始しているが再度学び直したい」 といった課題を抱えられているユーザーさまに向けた少人数制のオンライントレーニングです。
日々の営業活動を効率的に管理し、導入効果を高めるための方法を学びましょう。