capacitor-gleap-plugin 17.0.0 → 18.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CapacitorGleapPlugin.podspec +2 -2
- package/README.md +218 -3
- package/android/build.gradle +1 -1
- package/android/src/main/java/io/gleapplugins/capacitor/GleapPlugin.java +157 -0
- package/dist/docs.json +189 -0
- package/dist/esm/definitions.d.ts +95 -0
- package/dist/esm/definitions.js.map +1 -1
- package/dist/esm/web.d.ts +45 -0
- package/dist/esm/web.js +58 -0
- package/dist/esm/web.js.map +1 -1
- package/dist/plugin.cjs.js +58 -0
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +58 -0
- package/dist/plugin.js.map +1 -1
- package/ios/Plugin/GleapPlugin.m +9 -0
- package/ios/Plugin/GleapPlugin.swift +126 -0
- package/package.json +11 -4
|
@@ -11,8 +11,8 @@ Pod::Spec.new do |s|
|
|
|
11
11
|
s.author = package['author']
|
|
12
12
|
s.source = { :git => package['repository']['url'], :tag => s.version.to_s }
|
|
13
13
|
s.source_files = 'ios/Plugin/**/*.{swift,h,m,c,cc,mm,cpp}'
|
|
14
|
-
s.ios.deployment_target = '
|
|
14
|
+
s.ios.deployment_target = '15.0'
|
|
15
15
|
s.dependency 'Capacitor'
|
|
16
|
-
s.dependency 'Gleap', '
|
|
16
|
+
s.dependency 'Gleap', '18.1.0'
|
|
17
17
|
s.swift_version = '5.1'
|
|
18
18
|
end
|
package/README.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
# Capacitor
|
|
1
|
+
# Gleap Capacitor and Ionic SDK
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Add AI-native customer support, live chat, in-app bug reporting, a help center and surveys to your Capacitor and Ionic apps with [Gleap](https://www.gleap.ai). Gleap is an Intercom alternative for software teams that connects customer conversations and feedback with product development.
|
|
4
4
|
|
|
5
|
-
This plugin supports
|
|
5
|
+
This plugin supports Capacitor 7. See the instructions below for earlier Capacitor versions.
|
|
6
|
+
|
|
7
|
+
Thanks to Stephan Nagel (congrapp) for his work on the Gleap Capacitor plugin.
|
|
8
|
+
|
|
9
|
+
[SDK documentation](https://docs.gleap.ai/documentation/ioniccapacitor/README) · [Website](https://www.gleap.ai) · [Plans and pricing](https://www.gleap.ai/pricing)
|
|
6
10
|
|
|
7
11
|
## Install
|
|
8
12
|
|
|
@@ -23,11 +27,44 @@ Please install the plugin version from our capacitor-v5 brunch with `npm install
|
|
|
23
27
|
|
|
24
28
|
Please install the plugin version from our capacitor-v4 brunch with `npm install GleapSDK/Capacitor-SDK#capacitor-v4 --save` if you are using capacitor 4 or earlier.
|
|
25
29
|
|
|
30
|
+
## Data regions
|
|
31
|
+
|
|
32
|
+
Gleap projects live in a data region. The SDK talks to the EU region by default. If your project is hosted in the US region, set the region **before** calling `initialize`:
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
import { Gleap } from "capacitor-gleap-plugin";
|
|
36
|
+
|
|
37
|
+
await Gleap.setRegion({ region: "us" });
|
|
38
|
+
await Gleap.initialize({ API_KEY: "YOUR_API_KEY" });
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`setRegion` sets the API, websocket and realtime hosts at once (supported regions: `"eu"` and `"us"`). The static widget hosts (frame, banner, modal) are global and are not changed by the region.
|
|
42
|
+
|
|
43
|
+
For self-hosted or custom setups you can override single hosts with `setApiUrl({ url })`, `setWSApiUrl({ url })`, `setRealtimeHost({ host })`, `setFrameUrl({ url })`, `setBannerUrl({ url })` and `setModalUrl({ url })`. All of them must be called before `initialize`; a manual setter called after `setRegion` overrides that single host.
|
|
44
|
+
|
|
45
|
+
## Env data
|
|
46
|
+
|
|
47
|
+
With every ticket the SDK sends env data (device, OS, screen size, locale, URL, …), shown under the **Env data** tab in Gleap. Leave out individual keys or stop collecting env data entirely:
|
|
48
|
+
|
|
49
|
+
```typescript
|
|
50
|
+
await Gleap.setEnvDataPropsToIgnore({ propsToIgnore: ["deviceName", "batteryLevel"] });
|
|
51
|
+
await Gleap.setDisableEnvData({ disableEnvData: true });
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Both can be called at any time and apply to the next ticket. Each `setEnvDataPropsToIgnore` call replaces the previous list, an empty array resets it. `setDisableEnvData({ disableEnvData: false })` turns the collection back on.
|
|
55
|
+
|
|
26
56
|
## API
|
|
27
57
|
|
|
28
58
|
<docgen-index>
|
|
29
59
|
|
|
30
60
|
* [`initialize(...)`](#initialize)
|
|
61
|
+
* [`setRegion(...)`](#setregion)
|
|
62
|
+
* [`setApiUrl(...)`](#setapiurl)
|
|
63
|
+
* [`setWSApiUrl(...)`](#setwsapiurl)
|
|
64
|
+
* [`setRealtimeHost(...)`](#setrealtimehost)
|
|
65
|
+
* [`setFrameUrl(...)`](#setframeurl)
|
|
66
|
+
* [`setBannerUrl(...)`](#setbannerurl)
|
|
67
|
+
* [`setModalUrl(...)`](#setmodalurl)
|
|
31
68
|
* [`identify(...)`](#identify)
|
|
32
69
|
* [`updateContact(...)`](#updatecontact)
|
|
33
70
|
* [`clearIdentity()`](#clearidentity)
|
|
@@ -39,6 +76,7 @@ Please install the plugin version from our capacitor-v4 brunch with `npm install
|
|
|
39
76
|
* [`setTags(...)`](#settags)
|
|
40
77
|
* [`setNetworkLogsBlacklist(...)`](#setnetworklogsblacklist)
|
|
41
78
|
* [`setNetworkLogPropsToIgnore(...)`](#setnetworklogpropstoignore)
|
|
79
|
+
* [`setEnvDataPropsToIgnore(...)`](#setenvdatapropstoignore)
|
|
42
80
|
* [`registerAgentTool(...)`](#registeragenttool)
|
|
43
81
|
* [`sendAgentToolResult(...)`](#sendagenttoolresult)
|
|
44
82
|
* [`addListener('agentToolExecution', ...)`](#addlisteneragenttoolexecution-)
|
|
@@ -73,6 +111,7 @@ Please install the plugin version from our capacitor-v4 brunch with `npm install
|
|
|
73
111
|
* [`startBot(...)`](#startbot)
|
|
74
112
|
* [`showFeedbackButton(...)`](#showfeedbackbutton)
|
|
75
113
|
* [`setDisableInAppNotifications(...)`](#setdisableinappnotifications)
|
|
114
|
+
* [`setDisableEnvData(...)`](#setdisableenvdata)
|
|
76
115
|
* [`setLanguage(...)`](#setlanguage)
|
|
77
116
|
* [`disableConsoleLogOverwrite()`](#disableconsolelogoverwrite)
|
|
78
117
|
* [`enableDebugConsoleLog()`](#enabledebugconsolelog)
|
|
@@ -104,6 +143,141 @@ Initialize Gleap with an API key
|
|
|
104
143
|
--------------------
|
|
105
144
|
|
|
106
145
|
|
|
146
|
+
### setRegion(...)
|
|
147
|
+
|
|
148
|
+
```typescript
|
|
149
|
+
setRegion(options: { region: 'eu' | 'us'; }) => Promise<{ region: string; }>
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Set the data region of your Gleap project ("eu" is the default).
|
|
153
|
+
Sets the API, websocket and realtime hosts at once. Must be called before initialize.
|
|
154
|
+
A manual setter (setApiUrl, setWSApiUrl, setRealtimeHost) called afterwards overrides that single host.
|
|
155
|
+
|
|
156
|
+
| Param | Type |
|
|
157
|
+
| ------------- | -------------------------------------- |
|
|
158
|
+
| **`options`** | <code>{ region: 'eu' \| 'us'; }</code> |
|
|
159
|
+
|
|
160
|
+
**Returns:** <code>Promise<{ region: string; }></code>
|
|
161
|
+
|
|
162
|
+
**Since:** 18.0.0
|
|
163
|
+
|
|
164
|
+
--------------------
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
### setApiUrl(...)
|
|
168
|
+
|
|
169
|
+
```typescript
|
|
170
|
+
setApiUrl(options: { url: string; }) => Promise<{ url: string; }>
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
Set a custom API url. Must be called before initialize.
|
|
174
|
+
|
|
175
|
+
| Param | Type |
|
|
176
|
+
| ------------- | ----------------------------- |
|
|
177
|
+
| **`options`** | <code>{ url: string; }</code> |
|
|
178
|
+
|
|
179
|
+
**Returns:** <code>Promise<{ url: string; }></code>
|
|
180
|
+
|
|
181
|
+
**Since:** 18.0.0
|
|
182
|
+
|
|
183
|
+
--------------------
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
### setWSApiUrl(...)
|
|
187
|
+
|
|
188
|
+
```typescript
|
|
189
|
+
setWSApiUrl(options: { url: string; }) => Promise<{ url: string; }>
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
Set a custom websocket API url. Must be called before initialize.
|
|
193
|
+
|
|
194
|
+
| Param | Type |
|
|
195
|
+
| ------------- | ----------------------------- |
|
|
196
|
+
| **`options`** | <code>{ url: string; }</code> |
|
|
197
|
+
|
|
198
|
+
**Returns:** <code>Promise<{ url: string; }></code>
|
|
199
|
+
|
|
200
|
+
**Since:** 18.0.0
|
|
201
|
+
|
|
202
|
+
--------------------
|
|
203
|
+
|
|
204
|
+
|
|
205
|
+
### setRealtimeHost(...)
|
|
206
|
+
|
|
207
|
+
```typescript
|
|
208
|
+
setRealtimeHost(options: { host: string; }) => Promise<{ host: string; }>
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Set a custom realtime host (hostname only, without protocol or path). Must be called before initialize.
|
|
212
|
+
|
|
213
|
+
| Param | Type |
|
|
214
|
+
| ------------- | ------------------------------ |
|
|
215
|
+
| **`options`** | <code>{ host: string; }</code> |
|
|
216
|
+
|
|
217
|
+
**Returns:** <code>Promise<{ host: string; }></code>
|
|
218
|
+
|
|
219
|
+
**Since:** 18.0.0
|
|
220
|
+
|
|
221
|
+
--------------------
|
|
222
|
+
|
|
223
|
+
|
|
224
|
+
### setFrameUrl(...)
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
setFrameUrl(options: { url: string; }) => Promise<{ url: string; }>
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
Set a custom widget frame url. Must be called before initialize.
|
|
231
|
+
|
|
232
|
+
| Param | Type |
|
|
233
|
+
| ------------- | ----------------------------- |
|
|
234
|
+
| **`options`** | <code>{ url: string; }</code> |
|
|
235
|
+
|
|
236
|
+
**Returns:** <code>Promise<{ url: string; }></code>
|
|
237
|
+
|
|
238
|
+
**Since:** 18.0.0
|
|
239
|
+
|
|
240
|
+
--------------------
|
|
241
|
+
|
|
242
|
+
|
|
243
|
+
### setBannerUrl(...)
|
|
244
|
+
|
|
245
|
+
```typescript
|
|
246
|
+
setBannerUrl(options: { url: string; }) => Promise<{ url: string; }>
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
Set a custom banner url. Must be called before initialize.
|
|
250
|
+
|
|
251
|
+
| Param | Type |
|
|
252
|
+
| ------------- | ----------------------------- |
|
|
253
|
+
| **`options`** | <code>{ url: string; }</code> |
|
|
254
|
+
|
|
255
|
+
**Returns:** <code>Promise<{ url: string; }></code>
|
|
256
|
+
|
|
257
|
+
**Since:** 18.0.0
|
|
258
|
+
|
|
259
|
+
--------------------
|
|
260
|
+
|
|
261
|
+
|
|
262
|
+
### setModalUrl(...)
|
|
263
|
+
|
|
264
|
+
```typescript
|
|
265
|
+
setModalUrl(options: { url: string; }) => Promise<{ url: string; }>
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
Set a custom modal url. Must be called before initialize.
|
|
269
|
+
|
|
270
|
+
| Param | Type |
|
|
271
|
+
| ------------- | ----------------------------- |
|
|
272
|
+
| **`options`** | <code>{ url: string; }</code> |
|
|
273
|
+
|
|
274
|
+
**Returns:** <code>Promise<{ url: string; }></code>
|
|
275
|
+
|
|
276
|
+
**Since:** 18.0.0
|
|
277
|
+
|
|
278
|
+
--------------------
|
|
279
|
+
|
|
280
|
+
|
|
107
281
|
### identify(...)
|
|
108
282
|
|
|
109
283
|
```typescript
|
|
@@ -301,6 +475,27 @@ Set network logs props to ignore
|
|
|
301
475
|
--------------------
|
|
302
476
|
|
|
303
477
|
|
|
478
|
+
### setEnvDataPropsToIgnore(...)
|
|
479
|
+
|
|
480
|
+
```typescript
|
|
481
|
+
setEnvDataPropsToIgnore(options: { propsToIgnore: string[]; }) => Promise<{ envDataPropsToIgnoreSet: boolean; }>
|
|
482
|
+
```
|
|
483
|
+
|
|
484
|
+
Set env data props to ignore. The given env data keys (exact and case-sensitive, e.g. "deviceName" or "currentUrl")
|
|
485
|
+
are removed before a ticket or conversation is sent. Each call replaces the previous list, an empty list resets it.
|
|
486
|
+
Can be called before or after initialize.
|
|
487
|
+
|
|
488
|
+
| Param | Type |
|
|
489
|
+
| ------------- | ----------------------------------------- |
|
|
490
|
+
| **`options`** | <code>{ propsToIgnore: string[]; }</code> |
|
|
491
|
+
|
|
492
|
+
**Returns:** <code>Promise<{ envDataPropsToIgnoreSet: boolean; }></code>
|
|
493
|
+
|
|
494
|
+
**Since:** 18.1.0
|
|
495
|
+
|
|
496
|
+
--------------------
|
|
497
|
+
|
|
498
|
+
|
|
304
499
|
### registerAgentTool(...)
|
|
305
500
|
|
|
306
501
|
```typescript
|
|
@@ -922,6 +1117,26 @@ Disable in app notifications.
|
|
|
922
1117
|
--------------------
|
|
923
1118
|
|
|
924
1119
|
|
|
1120
|
+
### setDisableEnvData(...)
|
|
1121
|
+
|
|
1122
|
+
```typescript
|
|
1123
|
+
setDisableEnvData(options: { disableEnvData: boolean; }) => Promise<{ envDataDisabled: boolean; }>
|
|
1124
|
+
```
|
|
1125
|
+
|
|
1126
|
+
Disable env data. While disabled (true), no env data (device, OS, screen size, locale, URL, ...) is collected
|
|
1127
|
+
and tickets are sent without it. Pass false to collect env data again. Can be called before or after initialize.
|
|
1128
|
+
|
|
1129
|
+
| Param | Type |
|
|
1130
|
+
| ------------- | ----------------------------------------- |
|
|
1131
|
+
| **`options`** | <code>{ disableEnvData: boolean; }</code> |
|
|
1132
|
+
|
|
1133
|
+
**Returns:** <code>Promise<{ envDataDisabled: boolean; }></code>
|
|
1134
|
+
|
|
1135
|
+
**Since:** 18.1.0
|
|
1136
|
+
|
|
1137
|
+
--------------------
|
|
1138
|
+
|
|
1139
|
+
|
|
925
1140
|
### setLanguage(...)
|
|
926
1141
|
|
|
927
1142
|
```typescript
|
package/android/build.gradle
CHANGED
|
@@ -55,5 +55,5 @@ dependencies {
|
|
|
55
55
|
testImplementation "junit:junit:$junitVersion"
|
|
56
56
|
androidTestImplementation "androidx.test.ext:junit:$androidxJunitVersion"
|
|
57
57
|
androidTestImplementation "androidx.test.espresso:espresso-core:$androidxEspressoCoreVersion"
|
|
58
|
-
implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '
|
|
58
|
+
implementation group: 'io.gleap', name: 'gleap-android-sdk', version: '18.1.0'
|
|
59
59
|
}
|
|
@@ -86,6 +86,119 @@ public class GleapPlugin extends Plugin {
|
|
|
86
86
|
call.resolve(ret);
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
+
// Data region & host overrides. All of them must be called before initialize.
|
|
90
|
+
@PluginMethod
|
|
91
|
+
public void setRegion(PluginCall call) {
|
|
92
|
+
if (!call.getData().has("region")) {
|
|
93
|
+
call.reject("No region provided");
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
String region = call.getString("region");
|
|
98
|
+
implementation.setRegion(region);
|
|
99
|
+
|
|
100
|
+
// Build Json object and resolve success
|
|
101
|
+
JSObject ret = new JSObject();
|
|
102
|
+
ret.put("region", region);
|
|
103
|
+
call.resolve(ret);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
@PluginMethod
|
|
107
|
+
public void setApiUrl(PluginCall call) {
|
|
108
|
+
if (!call.getData().has("url")) {
|
|
109
|
+
call.reject("No url provided");
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
String url = call.getString("url");
|
|
114
|
+
implementation.setApiUrl(url);
|
|
115
|
+
|
|
116
|
+
// Build Json object and resolve success
|
|
117
|
+
JSObject ret = new JSObject();
|
|
118
|
+
ret.put("url", url);
|
|
119
|
+
call.resolve(ret);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
@PluginMethod
|
|
123
|
+
public void setWSApiUrl(PluginCall call) {
|
|
124
|
+
if (!call.getData().has("url")) {
|
|
125
|
+
call.reject("No url provided");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
String url = call.getString("url");
|
|
130
|
+
implementation.setWSApiUrl(url);
|
|
131
|
+
|
|
132
|
+
// Build Json object and resolve success
|
|
133
|
+
JSObject ret = new JSObject();
|
|
134
|
+
ret.put("url", url);
|
|
135
|
+
call.resolve(ret);
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
@PluginMethod
|
|
139
|
+
public void setRealtimeHost(PluginCall call) {
|
|
140
|
+
if (!call.getData().has("host")) {
|
|
141
|
+
call.reject("No host provided");
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
String host = call.getString("host");
|
|
146
|
+
implementation.setRealtimeHost(host);
|
|
147
|
+
|
|
148
|
+
// Build Json object and resolve success
|
|
149
|
+
JSObject ret = new JSObject();
|
|
150
|
+
ret.put("host", host);
|
|
151
|
+
call.resolve(ret);
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@PluginMethod
|
|
155
|
+
public void setFrameUrl(PluginCall call) {
|
|
156
|
+
if (!call.getData().has("url")) {
|
|
157
|
+
call.reject("No url provided");
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
String url = call.getString("url");
|
|
162
|
+
implementation.setFrameUrl(url);
|
|
163
|
+
|
|
164
|
+
// Build Json object and resolve success
|
|
165
|
+
JSObject ret = new JSObject();
|
|
166
|
+
ret.put("url", url);
|
|
167
|
+
call.resolve(ret);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
@PluginMethod
|
|
171
|
+
public void setBannerUrl(PluginCall call) {
|
|
172
|
+
if (!call.getData().has("url")) {
|
|
173
|
+
call.reject("No url provided");
|
|
174
|
+
return;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
String url = call.getString("url");
|
|
178
|
+
implementation.setBannerUrl(url);
|
|
179
|
+
|
|
180
|
+
// Build Json object and resolve success
|
|
181
|
+
JSObject ret = new JSObject();
|
|
182
|
+
ret.put("url", url);
|
|
183
|
+
call.resolve(ret);
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
@PluginMethod
|
|
187
|
+
public void setModalUrl(PluginCall call) {
|
|
188
|
+
if (!call.getData().has("url")) {
|
|
189
|
+
call.reject("No url provided");
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
String url = call.getString("url");
|
|
194
|
+
implementation.setModalUrl(url);
|
|
195
|
+
|
|
196
|
+
// Build Json object and resolve success
|
|
197
|
+
JSObject ret = new JSObject();
|
|
198
|
+
ret.put("url", url);
|
|
199
|
+
call.resolve(ret);
|
|
200
|
+
}
|
|
201
|
+
|
|
89
202
|
@PluginMethod
|
|
90
203
|
public void identify(PluginCall call) {
|
|
91
204
|
// If userId is empty, then pass back error
|
|
@@ -400,6 +513,38 @@ public class GleapPlugin extends Plugin {
|
|
|
400
513
|
call.resolve(ret);
|
|
401
514
|
}
|
|
402
515
|
|
|
516
|
+
/**
|
|
517
|
+
* Sets env data properties to be removed before a ticket is sent.
|
|
518
|
+
*
|
|
519
|
+
* @since 18.1.0
|
|
520
|
+
*/
|
|
521
|
+
@PluginMethod
|
|
522
|
+
public void setEnvDataPropsToIgnore(PluginCall call) {
|
|
523
|
+
// Check if 'propsToIgnore' key is provided, return error if not
|
|
524
|
+
if (!call.getData().has("propsToIgnore")) {
|
|
525
|
+
call.reject("Must provide a propsToIgnore array");
|
|
526
|
+
return;
|
|
527
|
+
}
|
|
528
|
+
|
|
529
|
+
try {
|
|
530
|
+
// Retrieve and set the env data properties to be ignored
|
|
531
|
+
JSArray jsonPropsToIgnore = call.getArray("propsToIgnore");
|
|
532
|
+
String[] propsToIgnore = new String[jsonPropsToIgnore.length()];
|
|
533
|
+
for (int i = 0; i < jsonPropsToIgnore.length(); i++) {
|
|
534
|
+
propsToIgnore[i] = jsonPropsToIgnore.getString(i);
|
|
535
|
+
}
|
|
536
|
+
|
|
537
|
+
implementation.setEnvDataPropsToIgnore(propsToIgnore);
|
|
538
|
+
} catch (Exception ex) {
|
|
539
|
+
// Handle exceptions if necessary
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
// Confirm successful setting of env data properties to ignore
|
|
543
|
+
JSObject ret = new JSObject();
|
|
544
|
+
ret.put("envDataPropsToIgnoreSet", true);
|
|
545
|
+
call.resolve(ret);
|
|
546
|
+
}
|
|
547
|
+
|
|
403
548
|
@PluginMethod
|
|
404
549
|
public void attachCustomData(PluginCall call) {
|
|
405
550
|
// If key is empty, then pass back error
|
|
@@ -639,6 +784,18 @@ public class GleapPlugin extends Plugin {
|
|
|
639
784
|
call.resolve(ret);
|
|
640
785
|
}
|
|
641
786
|
|
|
787
|
+
@PluginMethod
|
|
788
|
+
public void setDisableEnvData(PluginCall call) {
|
|
789
|
+
boolean disableEnvData = call.getBoolean("disableEnvData", false);
|
|
790
|
+
|
|
791
|
+
implementation.setDisableEnvData(disableEnvData);
|
|
792
|
+
|
|
793
|
+
// Build Json object and resolve success
|
|
794
|
+
JSObject ret = new JSObject();
|
|
795
|
+
ret.put("envDataDisabled", true);
|
|
796
|
+
call.resolve(ret);
|
|
797
|
+
}
|
|
798
|
+
|
|
642
799
|
@PluginMethod
|
|
643
800
|
public void showFeedbackButton(PluginCall call) {
|
|
644
801
|
boolean show = call.getBoolean("show");
|
package/dist/docs.json
CHANGED
|
@@ -26,6 +26,153 @@
|
|
|
26
26
|
"complexTypes": [],
|
|
27
27
|
"slug": "initialize"
|
|
28
28
|
},
|
|
29
|
+
{
|
|
30
|
+
"name": "setRegion",
|
|
31
|
+
"signature": "(options: { region: 'eu' | 'us'; }) => Promise<{ region: string; }>",
|
|
32
|
+
"parameters": [
|
|
33
|
+
{
|
|
34
|
+
"name": "options",
|
|
35
|
+
"docs": "",
|
|
36
|
+
"type": "{ region: 'eu' | 'us'; }"
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"returns": "Promise<{ region: string; }>",
|
|
40
|
+
"tags": [
|
|
41
|
+
{
|
|
42
|
+
"name": "since",
|
|
43
|
+
"text": "18.0.0"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"docs": "Set the data region of your Gleap project (\"eu\" is the default).\nSets the API, websocket and realtime hosts at once. Must be called before initialize.\nA manual setter (setApiUrl, setWSApiUrl, setRealtimeHost) called afterwards overrides that single host.",
|
|
47
|
+
"complexTypes": [],
|
|
48
|
+
"slug": "setregion"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "setApiUrl",
|
|
52
|
+
"signature": "(options: { url: string; }) => Promise<{ url: string; }>",
|
|
53
|
+
"parameters": [
|
|
54
|
+
{
|
|
55
|
+
"name": "options",
|
|
56
|
+
"docs": "",
|
|
57
|
+
"type": "{ url: string; }"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"returns": "Promise<{ url: string; }>",
|
|
61
|
+
"tags": [
|
|
62
|
+
{
|
|
63
|
+
"name": "since",
|
|
64
|
+
"text": "18.0.0"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"docs": "Set a custom API url. Must be called before initialize.",
|
|
68
|
+
"complexTypes": [],
|
|
69
|
+
"slug": "setapiurl"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "setWSApiUrl",
|
|
73
|
+
"signature": "(options: { url: string; }) => Promise<{ url: string; }>",
|
|
74
|
+
"parameters": [
|
|
75
|
+
{
|
|
76
|
+
"name": "options",
|
|
77
|
+
"docs": "",
|
|
78
|
+
"type": "{ url: string; }"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"returns": "Promise<{ url: string; }>",
|
|
82
|
+
"tags": [
|
|
83
|
+
{
|
|
84
|
+
"name": "since",
|
|
85
|
+
"text": "18.0.0"
|
|
86
|
+
}
|
|
87
|
+
],
|
|
88
|
+
"docs": "Set a custom websocket API url. Must be called before initialize.",
|
|
89
|
+
"complexTypes": [],
|
|
90
|
+
"slug": "setwsapiurl"
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"name": "setRealtimeHost",
|
|
94
|
+
"signature": "(options: { host: string; }) => Promise<{ host: string; }>",
|
|
95
|
+
"parameters": [
|
|
96
|
+
{
|
|
97
|
+
"name": "options",
|
|
98
|
+
"docs": "",
|
|
99
|
+
"type": "{ host: string; }"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"returns": "Promise<{ host: string; }>",
|
|
103
|
+
"tags": [
|
|
104
|
+
{
|
|
105
|
+
"name": "since",
|
|
106
|
+
"text": "18.0.0"
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
"docs": "Set a custom realtime host (hostname only, without protocol or path). Must be called before initialize.",
|
|
110
|
+
"complexTypes": [],
|
|
111
|
+
"slug": "setrealtimehost"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "setFrameUrl",
|
|
115
|
+
"signature": "(options: { url: string; }) => Promise<{ url: string; }>",
|
|
116
|
+
"parameters": [
|
|
117
|
+
{
|
|
118
|
+
"name": "options",
|
|
119
|
+
"docs": "",
|
|
120
|
+
"type": "{ url: string; }"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"returns": "Promise<{ url: string; }>",
|
|
124
|
+
"tags": [
|
|
125
|
+
{
|
|
126
|
+
"name": "since",
|
|
127
|
+
"text": "18.0.0"
|
|
128
|
+
}
|
|
129
|
+
],
|
|
130
|
+
"docs": "Set a custom widget frame url. Must be called before initialize.",
|
|
131
|
+
"complexTypes": [],
|
|
132
|
+
"slug": "setframeurl"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "setBannerUrl",
|
|
136
|
+
"signature": "(options: { url: string; }) => Promise<{ url: string; }>",
|
|
137
|
+
"parameters": [
|
|
138
|
+
{
|
|
139
|
+
"name": "options",
|
|
140
|
+
"docs": "",
|
|
141
|
+
"type": "{ url: string; }"
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"returns": "Promise<{ url: string; }>",
|
|
145
|
+
"tags": [
|
|
146
|
+
{
|
|
147
|
+
"name": "since",
|
|
148
|
+
"text": "18.0.0"
|
|
149
|
+
}
|
|
150
|
+
],
|
|
151
|
+
"docs": "Set a custom banner url. Must be called before initialize.",
|
|
152
|
+
"complexTypes": [],
|
|
153
|
+
"slug": "setbannerurl"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"name": "setModalUrl",
|
|
157
|
+
"signature": "(options: { url: string; }) => Promise<{ url: string; }>",
|
|
158
|
+
"parameters": [
|
|
159
|
+
{
|
|
160
|
+
"name": "options",
|
|
161
|
+
"docs": "",
|
|
162
|
+
"type": "{ url: string; }"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"returns": "Promise<{ url: string; }>",
|
|
166
|
+
"tags": [
|
|
167
|
+
{
|
|
168
|
+
"name": "since",
|
|
169
|
+
"text": "18.0.0"
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"docs": "Set a custom modal url. Must be called before initialize.",
|
|
173
|
+
"complexTypes": [],
|
|
174
|
+
"slug": "setmodalurl"
|
|
175
|
+
},
|
|
29
176
|
{
|
|
30
177
|
"name": "identify",
|
|
31
178
|
"signature": "(options: { userId: string; userHash?: string; name?: string; email?: string; phone?: string; companyId?: string; companyName?: string; avatar?: string; sla?: number; plan?: string; value?: number; customData?: Object; }) => Promise<{ identify: boolean; }>",
|
|
@@ -243,6 +390,27 @@
|
|
|
243
390
|
"complexTypes": [],
|
|
244
391
|
"slug": "setnetworklogpropstoignore"
|
|
245
392
|
},
|
|
393
|
+
{
|
|
394
|
+
"name": "setEnvDataPropsToIgnore",
|
|
395
|
+
"signature": "(options: { propsToIgnore: string[]; }) => Promise<{ envDataPropsToIgnoreSet: boolean; }>",
|
|
396
|
+
"parameters": [
|
|
397
|
+
{
|
|
398
|
+
"name": "options",
|
|
399
|
+
"docs": "",
|
|
400
|
+
"type": "{ propsToIgnore: string[]; }"
|
|
401
|
+
}
|
|
402
|
+
],
|
|
403
|
+
"returns": "Promise<{ envDataPropsToIgnoreSet: boolean; }>",
|
|
404
|
+
"tags": [
|
|
405
|
+
{
|
|
406
|
+
"name": "since",
|
|
407
|
+
"text": "18.1.0"
|
|
408
|
+
}
|
|
409
|
+
],
|
|
410
|
+
"docs": "Set env data props to ignore. The given env data keys (exact and case-sensitive, e.g. \"deviceName\" or \"currentUrl\")\nare removed before a ticket or conversation is sent. Each call replaces the previous list, an empty list resets it.\nCan be called before or after initialize.",
|
|
411
|
+
"complexTypes": [],
|
|
412
|
+
"slug": "setenvdatapropstoignore"
|
|
413
|
+
},
|
|
246
414
|
{
|
|
247
415
|
"name": "registerAgentTool",
|
|
248
416
|
"signature": "(options: { name: string; }) => Promise<void>",
|
|
@@ -933,6 +1101,27 @@
|
|
|
933
1101
|
"complexTypes": [],
|
|
934
1102
|
"slug": "setdisableinappnotifications"
|
|
935
1103
|
},
|
|
1104
|
+
{
|
|
1105
|
+
"name": "setDisableEnvData",
|
|
1106
|
+
"signature": "(options: { disableEnvData: boolean; }) => Promise<{ envDataDisabled: boolean; }>",
|
|
1107
|
+
"parameters": [
|
|
1108
|
+
{
|
|
1109
|
+
"name": "options",
|
|
1110
|
+
"docs": "",
|
|
1111
|
+
"type": "{ disableEnvData: boolean; }"
|
|
1112
|
+
}
|
|
1113
|
+
],
|
|
1114
|
+
"returns": "Promise<{ envDataDisabled: boolean; }>",
|
|
1115
|
+
"tags": [
|
|
1116
|
+
{
|
|
1117
|
+
"name": "since",
|
|
1118
|
+
"text": "18.1.0"
|
|
1119
|
+
}
|
|
1120
|
+
],
|
|
1121
|
+
"docs": "Disable env data. While disabled (true), no env data (device, OS, screen size, locale, URL, ...) is collected\nand tickets are sent without it. Pass false to collect env data again. Can be called before or after initialize.",
|
|
1122
|
+
"complexTypes": [],
|
|
1123
|
+
"slug": "setdisableenvdata"
|
|
1124
|
+
},
|
|
936
1125
|
{
|
|
937
1126
|
"name": "setLanguage",
|
|
938
1127
|
"signature": "(options: { languageCode: string; }) => Promise<{ setLanguage: string; }>",
|