最近搜索


没有最近搜索

Arnaud Joly's Avatar

Arnaud Joly

已加入2021年4月14日

·

最后活动2025年2月24日

关注

0

关注者

0

活动总数

40

投票

10

订阅

16

活动概览

的最新活动 Arnaud Joly

Arnaud Joly 进行了评论,

社区评论 Developer - Zendesk SDKs
Hi, 
 
as the Chat SDK doesn't handle the display of the Push Notification, it's a custom implementation and we cannot advise on how to proceed. 
I tested successfully in my own app following the android documentation, essentially using their code and replacing the Intent by the a Messaging intent.
 
Hope that this helps!

查看评论 · 已于 2022年8月30日 发布 · Arnaud Joly

0

关注者

0

投票

0

评论


Arnaud Joly 进行了评论,

社区评论 Developer - Zendesk SDKs
Hi, would you be able to provide a reproduction using one of our demo app so we could try it on our end? I haven't been able to reproduce this issue in my app.
You can find the step to do so in our Getting help document.

I found a post online mentioning diverse solutions where they updated the Kotlin version, the IDE version, etc. which could possibly resolve the issue has well.
 
Hope that this helps!

查看评论 · 已于 2022年8月23日 发布 · Arnaud Joly

0

关注者

0

投票

0

评论


Arnaud Joly 进行了评论,

社区评论 Developer - Zendesk SDKs

Hi Rafal Wesolowski

We've recently released the new version 2.1.0 for the Zendesk SDK, which contains the fix of the version 2.0.0 for Android 12. This should resolve your issue.

Thanks again for reporting that to us!

查看评论 · 已于 2022年1月28日 发布 · Arnaud Joly

0

关注者

0

投票

0

评论


Arnaud Joly 进行了评论,

社区评论 Developer - Zendesk SDKs

Hi Gopal C

The SDKs don't support changing the locale at runtime so you will not be able to programmatically change the UI locale. I've tried on Android which ended in the writing going right to left after switching to Arabic but the element stayed in english.

The only existing function about language is the Help Center Locale Override which doesn't affect the UI but changes which locales are the articles pulled from.

We have this article available that summarise this: https://support.zendesk.com/hc/en-us/articles/4408825038746-How-do-language-translations-work-in-the-mobile-SDK-user-interface-and-HelpCenterActivity

Hope this helps!

查看评论 · 已于 2022年1月05日 发布 · Arnaud Joly

0

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题

使用 Zendesk SDK 时,我应该注意哪些常见信息?

回答

Zendesk SDK 是 Zendesk 开发的全新移动 SDK。专门设计用于 消息传送专员工作区带有消息传送功能的 Zendesk SDK for Unity 也可用。以下是使用 SDK 时的注意事项。

限制

有关已知问题和限制,请参阅我们的 iOSAndroid开发者文档。

Google 还要求对 Android 版 Firebase 通知方式采取行动

覆盖核心框架

ZendeskSDK 需要 iOS 中的核心框架(例如 UI Kit)才能正常工作。如果这些框架的行为被覆盖,我们无法保证 SDK 如何在应用中运行。

我们建议扩展 UI Kits API,而不是覆盖它。当预期出现特定行为时,覆盖 API 会阻止 SDK 在您的应用中正常工作。

避免主题中的低对比度

您可以在 管理中心自定义 Zendesk SDK UI 的颜色。
与桌面应用程序相比,移动设备的使用环境更加多样化。编辑主题颜色时请注意无障碍,以便用户可以从任何地方轻松访问您的应用。我们建议您遵循 W3C 对比指南

避免类似的浅色和深色主题

Zendesk SDK 允许在管理中心设置浅色和深色主题。如果两个主题颜色相似,用户可能无法看到区别,从而造成混淆。

如需了解所有 SDK 功能,请参阅我们的开发者文档:Zendesk Web Widget 和 SDK

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2024年7月16日 编辑 · Arnaud Joly

1

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题

我看到 Zendesk 有多个移动 SDK。每个可以用来做什么? 

回答

用于消息传送的 Zendesk SDK

此 SDK 与消息传送关联,可用于 iOSAndroid。它们也称为适用于 iOS 的 Zendesk SDK 和适用于 Android 的 Zendesk SDK。有一个网络版本,称为 Zendesk SDK for Web。

Talk SDK

Talk SDK 也可用于 iOSAndroid。此 SDK 用作您 Talk 产品的移动实施,以便通过 Talk 数字线路使用电话支持。

Unity SDK

不要与下面的统一 SDK 混淆。Unity SDK 旨在为 Unity 游戏带来 Zendesk 的功能,使玩家无需离开应用即可访问请求、帮助中心内容,并与您的支持团队联系。

有关此 SDK 的更多技术信息,请参阅 开发者文档

如果您使用消息传送,请参阅文章: Zendesk SDK for Unity,带有消息传送

统一 SDK

统一的 SDK 在技术上并不是一个 SDK,而是使 Chat SDK、Support SDK 和 AnswerBot SDK 在同一个地方工作的基础。这些也称为 Classic SDK,其开发目的是使您可以 在同一个应用程序中同时使用它们:

  • Support SDK(iOS/Android):此 SDK 使用 Support 和帮助中心功能。使用此 SDK 可帮助您的客户提交或查看其请求,并访问您的知识库。
  • Chat SDK(iOS/Android):此 SDK 允许客户与您的支持团队发起实时在线交谈。 
  • AnswerBot SDK:此 SDK 与 Support 配合使用,使您的客户可接收文章建议,并增强您应用的自助服务功能。
注意:AnswerBot SDK 与 Support SDK 捆绑在一起。AnswerBot 的功能取决于 Support。  

Web SDK

从技术上讲,Web SDK 不是移动 SDK,但为避免混淆,将其包含在此处。它可以引用 Zopim Web SDK,它允许您开发自己版本的 Chat Widget。

该术语也可以指 Zendesk SDK for Web,这是一个新版本的 Web Widget,整合了消息传送的功能。

其它注意事项

  • 用于消息传送的 Zendesk SDK 不是统一 SDK 系列的一部分,也不是为与这些 SDK 配合使用而开发的。然而,它们可以并用,以便于您迁移到 Zendesk SDK(Android/iOS)。
  • 如果您希望,Support 和 Chat SDK 可以是独立的。每个都有其自己的 JWT 系统用于用户身份验证。jwt-auth
  • 每个 SDK 都有一个默认 UI 和一个提供程序版本,用于构建您自己的界面并添加 Zendesk 功能。

如果您发现任何移动 SDK 出现问题,请联系 支持团队 ,并提供本文所述信息:移动 SDK 开发者的工单提交指南

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2024年3月05日 编辑 · Arnaud Joly

7

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题特征

iOS 和 Android 在 交谈前访问者信息 对象方面的行为不同,这可能会使您的应用程序行为统一起来令人困惑。

VisitorInfo 对象允许您在开始在线交谈之前设置关于访问者的信息。相比之下,PreChatForm 对象会在在线交谈开始后收集该信息。

最初的想法是在您的工作流程中使用其中一个,但不能同时使用这两个,现在 iOS 上已进行了更新。 

带有 JWT 身份验证的工作流程也会修改 Chat 的行为。有关更多信息,请参阅文档 (Android|iOS) 或参阅文章:使用 Chat SDK 启用已通过身份验证的用户

解决步骤

免责声明本文仅供说明之用。Zendesk 不支持并不保证该代码。如有任何问题,请将其发布在评论部分,或尝试在线搜索解决方案。

iOS

iOS 中的逻辑如下所示:

  1. 获取 ChatAPIConfiguration visitorInfo  department 属性。
  2. 获取 ChatConfiguration preChatFormConfiguration 数据要求。
  3. 如果基础属性 VisitorInfo 为 nil 或空字符串,且其对应的数据要求为 .hidden,然后显示字段。
  4. 如果基础属性 department 为 nil 或空字符串,且其对应的数据要求为 .hidden,然后显示字段。
  5. SDK 向用户显示表格。用户填写详情或跳过任何 .optional 字段。
  6. SDK 收集在表格中输入的信息。
    如果有任何字段被跳过,它将回退到那里的配置详情。如果为空,则不发送详情。
  7. SDK 分配部门并通话 chat.profileProvider.setVisitorInfo(visitorInfo) 以及表格的 访问者 信息详情(将输入的数据与未填写的 API 配置合并)。

例如:

func status(for info: String?) -> FormFieldStatus {
info?.isEmpty == true ? .optional: .hidden
}

let chatAPIConfig = ChatAPIConfiguration()
chatAPIConfig.visitorInfo = visitorInfo
chatAPIConfig.department = departmentName
chat.configuration = chatAPIConfig
chat.profileProvider.setVisitorInfo(visitorInfo)
let chatUIConfig = ChatConfiguration()
chatUIConfig.preChatFormConfiguration = .init(name: status(for: visitorInfo.name),
email: status(for: visitorInfo.email),
phoneNumber: status(for: visitorInfo.phoneNumber),
department: status(for: form.departmentId))
// pass chatUIConfig into buildUI(engines:, configs:)

Android

对于 SDK Chat 3.2.0 之前的版本:

在 Android 中,逻辑有所不同。如果启用了 PreChatForm,则访问者信息将被完全 清除 ,无论该字段是“必填”、“可选”还是“隐藏”。

解决此限制的一种方法是在在线交谈开始后更新 访问者信息 (除了在在线交谈开始后不可编辑的部门):

  1. 创建一个 VisitorInfo 对象。
  2. 用关于用户的已知信息填充它。
  3. 配置交谈前的表格以询问缺失的信息。
  4. 设置观察者。
  5. 开始 Chat 活动。

当 PreChat 完成且在线交谈转为“已开始”状态时,访问者信息将更新。

例如:

boolean visitorSet = false; // Generic condition to ensure that you only set those info once

// ...

public void
setupObserver(){
final ObservationScope observationScope = new ObservationScope();
Chat.INSTANCE.providers().chatProvider().observeChatState(observationScope, new Observer() {
@Override
public void update(ChatState chatState) {
ChatSessionStatus chatStatus = chatState.getChatSessionStatus();
// Status achieved after the PreChatForm is completed
if (chatStatus == ChatSessionStatus.STARTED) {
// Update the information MID chat here. All info but Department can be updated
if (!visitorSet) {
// Add here the code to set the visitor info - visitorInfo would be a VisitorInfo type variable containing all the information to set
profileProvider.setVisitorInfo(visitorInfo, null);
visitorSet = true;
}

} else {
// There are few other statuses that you can observe but they are unused in this example
Log.d("DEBUG", "[observerSetup] - ChatSessionUpdate -> (unused) status : " + chatStatus.toString());
}
}
});
}

更新提供的代码脚本以适应您的工作流程。

从版本 3.2.0 起:

最新的 SDK 允许通过 VisitorInfo 更灵活地使用 PreChatForm。有关更多信息,请参阅文章:设置在线交谈会话的信息

这可以按照文档中的示例进行。

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2024年1月16日 编辑 · Arnaud Joly

4

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题

的流程如何? MessagingActivity 支持多个引擎或 SDK?

回答

多个 SDK 可整合到 MessagingActivity 使用 添加引擎 .withEngines 设置中打开。

这些对象会告诉 Activity 可以使用哪些 SDK,以及每个 SDK 可以通过将其传递给 Activity 来接收自己的配置。有关这方面的示例,请参阅文章:多种配置汇于一屏

活动开始后,工作流程如下:

MessagingActivity.png

在访问其他引擎、Chat 或 Support 后,您将无法返回 AnswerBot,除非退出视图并重新启动。

移交后,您将看到以下内容:

  • 如果交给 Support,引擎会将与 AnswerBot 的持续讨论转为包含所有在线交谈记录副本的工单。此外,如果已启用 对话 ,系统将提示您使用 RequestListActivity访问 请求 视图的按钮。
  • 如果交给 Chat,引擎将按照以下流程启动 Chat 工作流程和会话。此引擎的运行方式与正常 Chat 会话类似,只是重复使用Answer Bot讨论的记录副本,而不是询问您关于此在线交谈的主题的信息。完整的记录副本将作为初始消息添加到在线交谈。

需要注意的事项:

  • Identity for Support SDK 和 VisitorInfo for Chat SDK 是 2 个不同的身份集。JSON 网络密钥(JWT)流程也是如此,是完全分离的。
  • Answer Bot引擎不了解您 Chat 帐户的任何状态。如果您的帐户处于离线状态, Answer Bot仍会询问您是否要通过 Chat 进行联系,然后检查帐户状态,从而触发离线消息流程。为避免这种情况,请在将 Chat 引擎传递给消息传送活动配置之前检查 Chat 帐户状态。要检查帐户状态,请使用我们提供商 Chat SDK 中的此 功能
  • 在线交谈智能机器人的默认名称是:Answer Bot。一旦您选择了这些选项中的任何一个,请勿与Answer Bot引擎讨论。请通过 Chat 或 Support 进行此操作。有关更多信息,请参阅文章:为什么我可以在 Chat SDK 中看到Answer Bot ,即使我没有订阅?

mceclip1.png

注意:如果您已启用 全方位渠道路由 的消息传送,消息传送的路由行为将与实时在线交谈路由不同。全方位渠道路由是所有帐户和 2024 年 12 月 11 日之后创建的Zendesk Suite试用客户的默认路由体验。有关更多信息,请参阅文章:路由消息传送工单和通知

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2025年1月21日 编辑 · Arnaud Joly

1

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题

语言翻译在传统版 SDK 用户界面中如何工作? HelpCenterActivity

回答

默认情况下,传统版 SDK 支持已定义的 语言集。通过为特定的区域设置创建您自己的字符串文件,将您自己的变量或语言添加到 SDK。另一种选择是覆盖您自己的 string.xml 文件并替换 iOSAndroid的特定语言。

使用 SDK 时,界面的区域设置基于您的设备区域设置。SDK 中的任何函数都无法更改您的界面区域设置。 以编程方式更改应用区域设置不会反映在 UI 上。更改 UI 元素翻译的唯一方法是更改设备区域设置并重新启动应用。

HelpCenterActivity 呢?

当您使用 setHelpCenterLocaleOverride 对于 iOSAndroid,告诉帮助中心文章应来自哪个区域设置。这对 UI 没有任何影响。默认情况下,帮助中心是指设备,就像应用的其它部分一样。例如,如果您的设备区域设置是 en-us,然后是 UI,以及 AnswerBot 和文章区域设置将使用 en-us

例如,如果您使用 setHelpCenterLocaleOverride 将帮助中心的区域设置设置为 fr-fr,UI 和 AnswerBot 交互将保留在 en-us,但所有推荐的文章都将在 fr-fr

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2024年1月02日 编辑 · Arnaud Joly

1

关注者

0

投票

0

评论


Arnaud Joly 创建了一篇文章,

文章关于支持和工单处理的帮助

问题

使用 Chat SDK时,有时如果我在输入时离开在线交谈活动,键盘将保持打开状态,我需要手动关闭。如何避免此情况?

答案

发生此情况时,最简单的解决方案是每次返回 Chat UI 中的主要活动时强制关闭键盘。

在下面的例子中,主活动正在启动 Chat UI。当您关闭 Chat 用户界面后,这将是您返回的活动。在此范例中,脚本创建了一个方法,使 MasterActivity 在视图启动时隐藏键盘。请查看以下 Kotin 中的代码范例。

class MainActivity : AppCompatActivity() {

private fun hideKeyboard() {
val view = currentFocus ?: View(this)
val inputMethodManager = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(view.rootView.windowToken, 0)
inputMethodManager.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0)
view.clearFocus()
}

override fun onStart() {
super.onStart()
if (Chat.INSTANCE.providers()?.connectionProvider()?.connectionStatus == ConnectionStatus.DISCONNECTED) {
hideKeyboard()
}
}
}

确保已检查 connectionStatusonStart 活动回调,查看 Chat 是否处于状态 ConnectionStatus.DISCONNECTED,这意味着 MessagingActivity 已关闭,然后整合者可以 hideKeyboard

翻译免责声明:本文章使用自动翻译软件翻译,以便您了解基本内容。 我们已采取合理措施提供准确翻译,但不保证翻译准确性

如对翻译准确性有任何疑问,请以文章的英语版本为准。

已于 2022年11月16日 编辑 · Arnaud Joly

1

关注者

0

投票

0

评论