- 版本:0.0.16
- GitHub:
- NPM: https://npmjs.net.cn/package/nativescript-zendesk-monety
- 下载
- 昨天: 0
- 上周: 0
- 上个月: 0
注意:从 https://github.com/rhanb/nativescript-zendesk-sdk 分支而来,并将其转换为 npm 包,以便使用 TNS 6 和最新版本的 zendesk SDK。
nativescript-zendesk-sdk
一个使用 TypeScript 实现基本 Zendesk SDK 的 NativeScript 插件。它受到 nativescript-zendesk 的启发
安装
tns plugin add nativescript-zendesk-sdk
用法
[必须做] 在 Zendesk Support 中配置应用程序
[必须做] 初始化 SDK
export interface InitConfig {
applicationId: string;
zendeskUrl: string;
clientId: string;
userLocale?: string;
/** AnonUserIdentity object or JWT Token string */
identity?: AnonUserIdentity | string;
}
import { ZendeskSdk } from "nativescript-zendesk-sdk";
...
const initConfig = {
...
}
ZendeskSdk.initialize(initConfig);
如果 identity: null
将创建一个新的匿名身份,但如果 identity
是未定义的,它必须在启动任何 Zendesk 视图/活动之前设置。
注意:在初始化 Zendesk 时必须指定 applicationId
、zendeskUrl
和 clientId
,但地区、COPPA 合规模式和支持可以稍后设置/更改。
[必须做] 设置身份(身份验证)
使用匿名身份进行身份验证
ZendeskSdk.setAnonymousIdentity();
使用匿名身份进行身份验证(带详细信息)
ZendeskSdk.setAnonymousIdentity({name: "name", email: "email"});
使用您的 JWT 端点进行身份验证
ZendeskSdk.setJwtIdentity("jwtUserIdentifier");
地区设置
SDK 用于静态字符串的地区将与 Android 应用配置或 iOS NSUserDefaults 匹配。(如上所述,这些字符串可以覆盖或添加缺失的语言)。
设置从 Zendesk 获取的任何动态内容的地
ZendeskSdk.setUserLocale(localeCode);
配置请求
在打开帮助中心或创建请求之前,可以指定请求设置
export interface RequestOptions {
requestId?: string;
requestSubject?: string;
addDeviceInfo?: boolean;
tags?: string[];
files?: File[]; // android only
customFields?: CustomField[];
ticketForm?: {
ticketFormId: string;
customFields: CustomField[]
};
}
显示用户的票证
默认用法
ZendeskSdk.showRequestList();
显示帮助中心
默认用法
ZendeskSdk.showHelpCenter();
可选参数
export interface HelpCenterOptions {
/** default: { contactUsButtonVisible: false } */
articleOptions?: ArticleOptions;
/** default: false */
contactUsButtonVisible?: boolean;
/** default: false -- android only */
categoriesCollapsed?: boolean;
/** default: true -- android only */
conversationsMenu?: boolean;
}
ZendeskSdk.showHelpCenter(options);
筛选帮助中心
与原始 SDK 一样,一次只能使用一个筛选器。
按类别筛选
ZendeskSdk.showHelpCenterForCategoryIds(categoryIds, options);
按部分筛选
ZendeskSdk.showHelpCenterForLabelNames(labelNames, options);
按文章标签筛选
ZendeskSdk.showHelpCenterForSectionIds(sectionIds, options);
创建请求
ZendeskSdk.createRequest();
样式
Android
通过 app/App_Resources/Android/AndroidManifest.xml
配置,详情请参阅 此处。
简单样式
Zendesk 提供了 3 个基本主题,可以使用或扩展
- ZendeskSdkTheme.Light
- ZendeskSdkTheme.Dark
- ZendeskSdkTheme.Light
示例扩展PnpZendeskSdkTheme.DarkActionBar
app/App_Resources/Android/AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
...>
<application
...>
<activity android:name="com.zendesk.sdk.support.SupportActivity"
android:theme="@style/MyZendeskSdkTheme.DarkActionBar"/>
<activity android:name="com.zendesk.sdk.feedback.ui.ContactZendeskActivity"
android:theme="@style/MyZendeskSdkTheme.DarkActionBar"/>
<activity android:name="com.zendesk.sdk.support.ViewArticleActivity"
android:theme="@style/MyZendeskSdkTheme.DarkActionBar"/>
<activity android:name="com.zendesk.sdk.requests.RequestActivity"
android:theme="@style/MyZendeskSdkTheme.DarkActionBar"/>
<activity android:name="com.zendesk.sdk.requests.ViewRequestActivity"
android:theme="@style/MyZendeskSdkTheme.DarkActionBar"/>
</application>
</manifest>
app/App_Resources/Android/values/styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
...
<style name="PnpZendeskSdkTheme.DarkActionBar" parent="ZendeskSdkTheme.Light.DarkActionBar">
<item name="colorPrimary">@color/ns_primary</item>
<item name="colorPrimaryDark">@color/ns_primaryDark</item>
<item name="colorAccent">@color/ns_accent</item>
<item name="android:actionMenuTextColor">@color/ns_blue</item>
</style>
</resources>
<style name="YourLightTheme" parent="ZendeskSdkTheme.Light">
...
</style>
<style name="YourDarkTheme" parent="ZendeskSdkTheme.Dark">
...
</style>
<style name="YourLightTheme.DarkActionBar" parent="ZendeskSdkTheme.Light.DarkActionBar">
...
</style>
iOS
import { isIOS } from 'tns-core-modules/platform';
...
if ( isIOS ) {
UINavigationBar.appearance().tintColor = new Color('#00FFFF').ios;
UINavigationBar.appearance().barTintColor = new Color('#FF00FF').ios;
UINavigationBar.appearance().titleTextAttributes =
<NSDictionary<string, any>>NSDictionary.dictionaryWithObjectForKey(
new Color('#FFFF00').ios,
NSForegroundColorAttributeName);
}
const iOSTheme: ZendeskIosThemeSimple = {
primaryColor: '#FF0000',
};
ZendeskSdk.setIosTheme(iOSTheme);
前3种颜色主要用于“新工单”屏幕的ActionBar/StatusBar,因为帮助中心使用的是常规NativeScript设置的默认ActionBar/StatusBar颜色。
这些设置可能会影响整个应用程序,但会被常规NativeScript视图忽略,但可能会影响其他第三方视图。您可能需要将这些设置与整个应用程序中使用的设置相同。
主题对象内的设置只会影响Zendesk。
贡献
项目已包含Typings和iOS元数据,以简化使用。
Typings是使用以下工具自动生成的:
https://github.com/NativeScript/android-dts-generator
https://docs.nativescript.cn/runtimes/ios/how-to/Use-Native-Libraries