react-native-sdk-pianoio 0.2.0 → 0.2.2
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/README.md +107 -9
- package/SdkPianoio.podspec +1 -1
- package/android/generated/jni/RNSdkPianoioSpec-generated.cpp +1 -65
- package/android/generated/jni/RNSdkPianoioSpec.h +0 -7
- package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI-generated.cpp +0 -72
- package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI.h +0 -133
- package/ios/ComposerPiano.swift +124 -9
- package/ios/MyComposerDelegate.swift +204 -0
- package/ios/SdkPianoio.h +2 -4
- package/ios/SdkPianoio.mm +90 -48
- package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec-generated.mm +0 -86
- package/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h +0 -52
- package/ios/generated/RNSdkPianoioSpecJSI-generated.cpp +0 -72
- package/ios/generated/RNSdkPianoioSpecJSI.h +0 -133
- package/ios/services/ComposerService.swift +49 -0
- package/ios/services/TokenService.swift +67 -0
- package/lib/commonjs/NativeSdkPianoio.ts +18 -14
- package/lib/commonjs/PianoComposer.js +22 -0
- package/lib/commonjs/PianoComposer.js.map +1 -1
- package/lib/module/NativeSdkPianoio.ts +18 -14
- package/lib/module/PianoComposer.js +22 -0
- package/lib/module/PianoComposer.js.map +1 -1
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts +16 -13
- package/lib/typescript/commonjs/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/PianoComposer.d.ts +13 -9
- package/lib/typescript/commonjs/src/PianoComposer.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts +16 -13
- package/lib/typescript/module/src/NativeSdkPianoio.d.ts.map +1 -1
- package/lib/typescript/module/src/PianoComposer.d.ts +13 -9
- package/lib/typescript/module/src/PianoComposer.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/NativeSdkPianoio.ts +18 -14
- package/src/PianoComposer.tsx +95 -71
- package/src/index.tsx +0 -2
- package/android/generated/java/com/sdkpianoio/NativeSdkPianoioSpec.java +0 -75
package/README.md
CHANGED
@@ -4,6 +4,21 @@ Lo scopo di questo pacchetto npm è quello di avere la possibilità di interagir
|
|
4
4
|
|
5
5
|
Il progetto è ancora in **work in progress**.
|
6
6
|
|
7
|
+
## Indice
|
8
|
+
|
9
|
+
- [Installazione](#installazione)
|
10
|
+
- [Expo](#expo)
|
11
|
+
- [Adattamento del pacchetto a expo < 52](#adattamento-del-pacchetto-a-expo--52)
|
12
|
+
- [React native](#react-native)
|
13
|
+
- [Utilizzo](#utilizzo)
|
14
|
+
- [Importazione](#importazione)
|
15
|
+
- [Creazione del Composer](#creazione-del-composer)
|
16
|
+
- [Metodi del Composer](#metodi-del-composer)
|
17
|
+
- [Metodi statici](#metodi-statici)
|
18
|
+
- [Esempio completo](#esempio-completo)
|
19
|
+
<!-- - [Contributing](#contributing)
|
20
|
+
- [License](#license) -->
|
21
|
+
|
7
22
|
## Installazione
|
8
23
|
|
9
24
|
### Expo
|
@@ -34,7 +49,93 @@ In seguito si può far partire il progetto, tramite il comando:
|
|
34
49
|
npx expo start
|
35
50
|
```
|
36
51
|
|
37
|
-
###
|
52
|
+
### Adattamento del pacchetto a Expo < 52
|
53
|
+
|
54
|
+
Con l’introduzione della versione Expo SDK 52, il team di Expo ha adottato la **New Architecture** di React Native, che introduce importanti novità come i TurboModules, il Codegen e un nuovo sistema di gestione degli eventi (incluso EventEmitterCallback). Questi cambiamenti migliorano performance, interoperabilità con pacchetti nativi complessi e garantiscono una maggiore compatibilità futura con React Native.
|
55
|
+
|
56
|
+
Tuttavia, questa evoluzione comporta incompatibilità con versioni precedenti (Expo 51 o inferiori), che non includono le definizioni e i meccanismi introdotti dalla nuova architettura.
|
57
|
+
|
58
|
+
Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
|
59
|
+
|
60
|
+
Per far funzionare il pacchetto con versioni precedenti alla 52, è necessario usare un approccio un po' forzato, modificando manualmente il codice generato per evitare riferimenti non supportati.
|
61
|
+
|
62
|
+
Una volta installato il pacchetto e aver eseguito:
|
63
|
+
|
64
|
+
```sh
|
65
|
+
npx expo run:ios
|
66
|
+
```
|
67
|
+
|
68
|
+
Dovrebbe comparire una serie di errori simili a questo:
|
69
|
+
|
70
|
+
```sh
|
71
|
+
❌ (node_modules/react-native-sdk-pianoio/ios/generated/RNSdkPianoioSpec/RNSdkPianoioSpec.h:72:18)
|
72
|
+
|
73
|
+
70 | @interface NativeSdkPianoioSpecBase : NSObject {
|
74
|
+
71 | @protected
|
75
|
+
> 72 | facebook::react::EventEmitterCallback _eventEmitterCallback;
|
76
|
+
| ^ no type named 'EventEmitterCallback' in namespace 'facebook::react'
|
77
|
+
73 | }
|
78
|
+
74 | - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
|
79
|
+
75 |
|
80
|
+
```
|
81
|
+
|
82
|
+
I file causanti di questi errori sono:
|
83
|
+
|
84
|
+
- RNSdkPianoioSpec.h
|
85
|
+
- RNSdkPianoioSpec-generated.mm
|
86
|
+
|
87
|
+
Quindi, cliccare sulla referenza del file e andare alla linea dell'errore.
|
88
|
+
|
89
|
+
#### Modifica del file RNSdkPianoioSpec.h
|
90
|
+
|
91
|
+
```
|
92
|
+
@interface NativeSdkPianoioSpecBase : NSObject {
|
93
|
+
@protected
|
94
|
+
facebook::react::EventEmitterCallback _eventEmitterCallback;
|
95
|
+
}
|
96
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
|
97
|
+
|
98
|
+
@end
|
99
|
+
```
|
100
|
+
|
101
|
+
Sostituire il codice sovrastante con:
|
102
|
+
|
103
|
+
```
|
104
|
+
@interface NativeSdkPianoioSpecBase : NSObject {
|
105
|
+
@protected
|
106
|
+
void *_eventEmitterCallback;
|
107
|
+
}
|
108
|
+
- (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
|
109
|
+
|
110
|
+
@end
|
111
|
+
```
|
112
|
+
|
113
|
+
#### Modifica del file RNSdkPianoioSpec.h
|
114
|
+
|
115
|
+
```
|
116
|
+
@implementation NativeSdkPianoioSpecBase
|
117
|
+
|
118
|
+
|
119
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
|
120
|
+
{
|
121
|
+
_eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
|
122
|
+
}
|
123
|
+
@end
|
124
|
+
```
|
125
|
+
|
126
|
+
Sostituire il codice sovrastante con:
|
127
|
+
|
128
|
+
```
|
129
|
+
@implementation NativeSdkPianoioSpecBase
|
130
|
+
|
131
|
+
- (void)setEventEmitterCallback:(void *)eventEmitterCallbackWrapper;
|
132
|
+
{
|
133
|
+
_eventEmitterCallback = std::move(eventEmitterCallbackWrapper);
|
134
|
+
}
|
135
|
+
@end
|
136
|
+
```
|
137
|
+
|
138
|
+
### React native
|
38
139
|
|
39
140
|
Nel progetto di react native eseguire:
|
40
141
|
|
@@ -42,7 +143,7 @@ Nel progetto di react native eseguire:
|
|
42
143
|
npm install react-native-sdk-pianoio
|
43
144
|
```
|
44
145
|
|
45
|
-
#### iOS
|
146
|
+
#### iOS
|
46
147
|
|
47
148
|
Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
|
48
149
|
|
@@ -50,7 +151,7 @@ Nel progetto di react native entrare nella cartella per ios ed installare le dip
|
|
50
151
|
pod install
|
51
152
|
```
|
52
153
|
|
53
|
-
#### Android
|
154
|
+
#### Android
|
54
155
|
|
55
156
|
Nel progetto di react native entrare nella cartella per android e [...]
|
56
157
|
|
@@ -74,7 +175,7 @@ import PianoComposer from './PianoComposer';
|
|
74
175
|
const composer = await PianoComposer.create('your_aid');
|
75
176
|
```
|
76
177
|
|
77
|
-
##
|
178
|
+
## Metodi del Composer
|
78
179
|
|
79
180
|
### `addTag(tag: string)`
|
80
181
|
|
@@ -170,13 +271,12 @@ PianoComposer {
|
|
170
271
|
|
171
272
|
---
|
172
273
|
|
173
|
-
##
|
274
|
+
## Metodi statici
|
174
275
|
|
175
276
|
### `PianoComposer.create(aid: string): Promise<PianoComposer>`
|
176
277
|
|
177
278
|
Crea e inizializza una nuova istanza di `PianoComposer`.
|
178
279
|
|
179
|
-
|
180
280
|
### `PianoComposer.isInitialized(): Promise<boolean>`
|
181
281
|
|
182
282
|
Verifica se il composer è stato inizializzato correttamente a livello nativo.
|
@@ -201,7 +301,7 @@ Recupera i dati correnti dal modulo nativo iOS. Questo oggetto include:
|
|
201
301
|
}
|
202
302
|
```
|
203
303
|
|
204
|
-
##
|
304
|
+
## Esempio completo
|
205
305
|
|
206
306
|
```ts
|
207
307
|
const composer = await PianoComposer.create('YOUR_AID');
|
@@ -213,8 +313,6 @@ await composer.setUrl('https://my.site/article');
|
|
213
313
|
await composer.setUserToken('jwt-token');
|
214
314
|
await composer.setCustomVariable('device', 'mobile');
|
215
315
|
|
216
|
-
await composer.execute();
|
217
|
-
|
218
316
|
console.log(await composer.toString());
|
219
317
|
```
|
220
318
|
|
package/SdkPianoio.podspec
CHANGED
@@ -14,7 +14,7 @@ Pod::Spec.new do |s|
|
|
14
14
|
s.platforms = { :ios => min_ios_version_supported }
|
15
15
|
s.source = { :git => "https://google.ch$.git", :tag => "#{s.version}" }
|
16
16
|
|
17
|
-
s.source_files = "ios/**/*.{h,m,mm,cpp,swift}"
|
17
|
+
s.source_files = "ios/**/*.{h,m,mm,cpp,swift}", "ios/services/**/*.{swift}"
|
18
18
|
s.private_header_files = "ios/**/*.h"
|
19
19
|
|
20
20
|
|
@@ -12,74 +12,10 @@
|
|
12
12
|
|
13
13
|
namespace facebook::react {
|
14
14
|
|
15
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
16
|
-
static jmethodID cachedMethodId = nullptr;
|
17
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "initializeComposer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
18
|
-
}
|
19
|
-
|
20
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_getComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
21
|
-
static jmethodID cachedMethodId = nullptr;
|
22
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "getComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
23
|
-
}
|
24
15
|
|
25
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
26
|
-
static jmethodID cachedMethodId = nullptr;
|
27
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTag", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
28
|
-
}
|
29
|
-
|
30
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
31
|
-
static jmethodID cachedMethodId = nullptr;
|
32
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "addComposerTags", "(Lcom/facebook/react/bridge/ReadableArray;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
33
|
-
}
|
34
|
-
|
35
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
36
|
-
static jmethodID cachedMethodId = nullptr;
|
37
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerZoneId", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
38
|
-
}
|
39
|
-
|
40
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
41
|
-
static jmethodID cachedMethodId = nullptr;
|
42
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerReferrer", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
43
|
-
}
|
44
|
-
|
45
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
46
|
-
static jmethodID cachedMethodId = nullptr;
|
47
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUrl", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
48
|
-
}
|
49
|
-
|
50
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
51
|
-
static jmethodID cachedMethodId = nullptr;
|
52
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerCustomVariable", "(Ljava/lang/String;Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
53
|
-
}
|
54
|
-
|
55
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
56
|
-
static jmethodID cachedMethodId = nullptr;
|
57
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "setComposerUserToken", "(Ljava/lang/String;Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
58
|
-
}
|
59
|
-
|
60
|
-
static facebook::jsi::Value __hostFunction_NativeSdkPianoioSpecJSI_executeComposer(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
61
|
-
static jmethodID cachedMethodId = nullptr;
|
62
|
-
return static_cast<JavaTurboModule &>(turboModule).invokeJavaMethod(rt, PromiseKind, "executeComposer", "(Lcom/facebook/react/bridge/Promise;)V", args, count, cachedMethodId);
|
63
|
-
}
|
64
|
-
|
65
|
-
NativeSdkPianoioSpecJSI::NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams ¶ms)
|
66
|
-
: JavaTurboModule(params) {
|
67
|
-
methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_initializeComposer};
|
68
|
-
methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_getComposer};
|
69
|
-
methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTag};
|
70
|
-
methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_addComposerTags};
|
71
|
-
methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerZoneId};
|
72
|
-
methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerReferrer};
|
73
|
-
methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUrl};
|
74
|
-
methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioSpecJSI_setComposerCustomVariable};
|
75
|
-
methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioSpecJSI_setComposerUserToken};
|
76
|
-
methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioSpecJSI_executeComposer};
|
77
|
-
}
|
78
16
|
|
79
17
|
std::shared_ptr<TurboModule> RNSdkPianoioSpec_ModuleProvider(const std::string &moduleName, const JavaTurboModule::InitParams ¶ms) {
|
80
|
-
|
81
|
-
return std::make_shared<NativeSdkPianoioSpecJSI>(params);
|
82
|
-
}
|
18
|
+
|
83
19
|
return nullptr;
|
84
20
|
}
|
85
21
|
|
@@ -16,13 +16,6 @@
|
|
16
16
|
|
17
17
|
namespace facebook::react {
|
18
18
|
|
19
|
-
/**
|
20
|
-
* JNI C++ class for module 'NativeSdkPianoio'
|
21
|
-
*/
|
22
|
-
class JSI_EXPORT NativeSdkPianoioSpecJSI : public JavaTurboModule {
|
23
|
-
public:
|
24
|
-
NativeSdkPianoioSpecJSI(const JavaTurboModule::InitParams ¶ms);
|
25
|
-
};
|
26
19
|
|
27
20
|
|
28
21
|
JSI_EXPORT
|
@@ -11,79 +11,7 @@
|
|
11
11
|
|
12
12
|
namespace facebook::react {
|
13
13
|
|
14
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
15
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->initializeComposer(
|
16
|
-
rt,
|
17
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
18
|
-
);
|
19
|
-
}
|
20
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
21
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->getComposer(
|
22
|
-
rt
|
23
|
-
);
|
24
|
-
}
|
25
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
26
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTag(
|
27
|
-
rt,
|
28
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
29
|
-
);
|
30
|
-
}
|
31
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
32
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->addComposerTags(
|
33
|
-
rt,
|
34
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asObject(rt).asArray(rt)
|
35
|
-
);
|
36
|
-
}
|
37
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
38
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerZoneId(
|
39
|
-
rt,
|
40
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
41
|
-
);
|
42
|
-
}
|
43
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
44
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerReferrer(
|
45
|
-
rt,
|
46
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
47
|
-
);
|
48
|
-
}
|
49
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
50
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUrl(
|
51
|
-
rt,
|
52
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
53
|
-
);
|
54
|
-
}
|
55
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
56
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerCustomVariable(
|
57
|
-
rt,
|
58
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt),
|
59
|
-
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asString(rt)
|
60
|
-
);
|
61
|
-
}
|
62
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
63
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->setComposerUserToken(
|
64
|
-
rt,
|
65
|
-
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asString(rt)
|
66
|
-
);
|
67
|
-
}
|
68
|
-
static jsi::Value __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
69
|
-
return static_cast<NativeSdkPianoioCxxSpecJSI *>(&turboModule)->executeComposer(
|
70
|
-
rt
|
71
|
-
);
|
72
|
-
}
|
73
14
|
|
74
|
-
NativeSdkPianoioCxxSpecJSI::NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
75
|
-
: TurboModule("SdkPianoio", jsInvoker) {
|
76
|
-
methodMap_["initializeComposer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_initializeComposer};
|
77
|
-
methodMap_["getComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_getComposer};
|
78
|
-
methodMap_["addComposerTag"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTag};
|
79
|
-
methodMap_["addComposerTags"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_addComposerTags};
|
80
|
-
methodMap_["setComposerZoneId"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerZoneId};
|
81
|
-
methodMap_["setComposerReferrer"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerReferrer};
|
82
|
-
methodMap_["setComposerUrl"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUrl};
|
83
|
-
methodMap_["setComposerCustomVariable"] = MethodMetadata {2, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerCustomVariable};
|
84
|
-
methodMap_["setComposerUserToken"] = MethodMetadata {1, __hostFunction_NativeSdkPianoioCxxSpecJSI_setComposerUserToken};
|
85
|
-
methodMap_["executeComposer"] = MethodMetadata {0, __hostFunction_NativeSdkPianoioCxxSpecJSI_executeComposer};
|
86
|
-
}
|
87
15
|
|
88
16
|
|
89
17
|
} // namespace facebook::react
|
package/android/generated/jni/react/renderer/components/RNSdkPianoioSpec/RNSdkPianoioSpecJSI.h
CHANGED
@@ -15,138 +15,5 @@
|
|
15
15
|
namespace facebook::react {
|
16
16
|
|
17
17
|
|
18
|
-
class JSI_EXPORT NativeSdkPianoioCxxSpecJSI : public TurboModule {
|
19
|
-
protected:
|
20
|
-
NativeSdkPianoioCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
21
|
-
|
22
|
-
public:
|
23
|
-
virtual jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) = 0;
|
24
|
-
virtual jsi::Value getComposer(jsi::Runtime &rt) = 0;
|
25
|
-
virtual jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) = 0;
|
26
|
-
virtual jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) = 0;
|
27
|
-
virtual jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) = 0;
|
28
|
-
virtual jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) = 0;
|
29
|
-
virtual jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) = 0;
|
30
|
-
virtual jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) = 0;
|
31
|
-
virtual jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) = 0;
|
32
|
-
virtual jsi::Value executeComposer(jsi::Runtime &rt) = 0;
|
33
|
-
|
34
|
-
};
|
35
|
-
|
36
|
-
template <typename T>
|
37
|
-
class JSI_EXPORT NativeSdkPianoioCxxSpec : public TurboModule {
|
38
|
-
public:
|
39
|
-
jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
40
|
-
return delegate_.create(rt, propName);
|
41
|
-
}
|
42
|
-
|
43
|
-
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
|
44
|
-
return delegate_.getPropertyNames(runtime);
|
45
|
-
}
|
46
|
-
|
47
|
-
static constexpr std::string_view kModuleName = "SdkPianoio";
|
48
|
-
|
49
|
-
protected:
|
50
|
-
NativeSdkPianoioCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
51
|
-
: TurboModule(std::string{NativeSdkPianoioCxxSpec::kModuleName}, jsInvoker),
|
52
|
-
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
53
|
-
|
54
|
-
|
55
|
-
private:
|
56
|
-
class Delegate : public NativeSdkPianoioCxxSpecJSI {
|
57
|
-
public:
|
58
|
-
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
59
|
-
NativeSdkPianoioCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
60
|
-
|
61
|
-
}
|
62
|
-
|
63
|
-
jsi::Value initializeComposer(jsi::Runtime &rt, jsi::String aid) override {
|
64
|
-
static_assert(
|
65
|
-
bridging::getParameterCount(&T::initializeComposer) == 2,
|
66
|
-
"Expected initializeComposer(...) to have 2 parameters");
|
67
|
-
|
68
|
-
return bridging::callFromJs<jsi::Value>(
|
69
|
-
rt, &T::initializeComposer, jsInvoker_, instance_, std::move(aid));
|
70
|
-
}
|
71
|
-
jsi::Value getComposer(jsi::Runtime &rt) override {
|
72
|
-
static_assert(
|
73
|
-
bridging::getParameterCount(&T::getComposer) == 1,
|
74
|
-
"Expected getComposer(...) to have 1 parameters");
|
75
|
-
|
76
|
-
return bridging::callFromJs<jsi::Value>(
|
77
|
-
rt, &T::getComposer, jsInvoker_, instance_);
|
78
|
-
}
|
79
|
-
jsi::Value addComposerTag(jsi::Runtime &rt, jsi::String tag) override {
|
80
|
-
static_assert(
|
81
|
-
bridging::getParameterCount(&T::addComposerTag) == 2,
|
82
|
-
"Expected addComposerTag(...) to have 2 parameters");
|
83
|
-
|
84
|
-
return bridging::callFromJs<jsi::Value>(
|
85
|
-
rt, &T::addComposerTag, jsInvoker_, instance_, std::move(tag));
|
86
|
-
}
|
87
|
-
jsi::Value addComposerTags(jsi::Runtime &rt, jsi::Array tags) override {
|
88
|
-
static_assert(
|
89
|
-
bridging::getParameterCount(&T::addComposerTags) == 2,
|
90
|
-
"Expected addComposerTags(...) to have 2 parameters");
|
91
|
-
|
92
|
-
return bridging::callFromJs<jsi::Value>(
|
93
|
-
rt, &T::addComposerTags, jsInvoker_, instance_, std::move(tags));
|
94
|
-
}
|
95
|
-
jsi::Value setComposerZoneId(jsi::Runtime &rt, jsi::String zoneId) override {
|
96
|
-
static_assert(
|
97
|
-
bridging::getParameterCount(&T::setComposerZoneId) == 2,
|
98
|
-
"Expected setComposerZoneId(...) to have 2 parameters");
|
99
|
-
|
100
|
-
return bridging::callFromJs<jsi::Value>(
|
101
|
-
rt, &T::setComposerZoneId, jsInvoker_, instance_, std::move(zoneId));
|
102
|
-
}
|
103
|
-
jsi::Value setComposerReferrer(jsi::Runtime &rt, jsi::String referrer) override {
|
104
|
-
static_assert(
|
105
|
-
bridging::getParameterCount(&T::setComposerReferrer) == 2,
|
106
|
-
"Expected setComposerReferrer(...) to have 2 parameters");
|
107
|
-
|
108
|
-
return bridging::callFromJs<jsi::Value>(
|
109
|
-
rt, &T::setComposerReferrer, jsInvoker_, instance_, std::move(referrer));
|
110
|
-
}
|
111
|
-
jsi::Value setComposerUrl(jsi::Runtime &rt, jsi::String url) override {
|
112
|
-
static_assert(
|
113
|
-
bridging::getParameterCount(&T::setComposerUrl) == 2,
|
114
|
-
"Expected setComposerUrl(...) to have 2 parameters");
|
115
|
-
|
116
|
-
return bridging::callFromJs<jsi::Value>(
|
117
|
-
rt, &T::setComposerUrl, jsInvoker_, instance_, std::move(url));
|
118
|
-
}
|
119
|
-
jsi::Value setComposerCustomVariable(jsi::Runtime &rt, jsi::String name, jsi::String value) override {
|
120
|
-
static_assert(
|
121
|
-
bridging::getParameterCount(&T::setComposerCustomVariable) == 3,
|
122
|
-
"Expected setComposerCustomVariable(...) to have 3 parameters");
|
123
|
-
|
124
|
-
return bridging::callFromJs<jsi::Value>(
|
125
|
-
rt, &T::setComposerCustomVariable, jsInvoker_, instance_, std::move(name), std::move(value));
|
126
|
-
}
|
127
|
-
jsi::Value setComposerUserToken(jsi::Runtime &rt, jsi::String token) override {
|
128
|
-
static_assert(
|
129
|
-
bridging::getParameterCount(&T::setComposerUserToken) == 2,
|
130
|
-
"Expected setComposerUserToken(...) to have 2 parameters");
|
131
|
-
|
132
|
-
return bridging::callFromJs<jsi::Value>(
|
133
|
-
rt, &T::setComposerUserToken, jsInvoker_, instance_, std::move(token));
|
134
|
-
}
|
135
|
-
jsi::Value executeComposer(jsi::Runtime &rt) override {
|
136
|
-
static_assert(
|
137
|
-
bridging::getParameterCount(&T::executeComposer) == 1,
|
138
|
-
"Expected executeComposer(...) to have 1 parameters");
|
139
|
-
|
140
|
-
return bridging::callFromJs<jsi::Value>(
|
141
|
-
rt, &T::executeComposer, jsInvoker_, instance_);
|
142
|
-
}
|
143
|
-
|
144
|
-
private:
|
145
|
-
friend class NativeSdkPianoioCxxSpec;
|
146
|
-
T *instance_;
|
147
|
-
};
|
148
|
-
|
149
|
-
Delegate delegate_;
|
150
|
-
};
|
151
18
|
|
152
19
|
} // namespace facebook::react
|
package/ios/ComposerPiano.swift
CHANGED
@@ -9,24 +9,33 @@ import PianoComposer
|
|
9
9
|
import PianoOAuth
|
10
10
|
import PianoConsents
|
11
11
|
import PianoTemplate
|
12
|
+
import React
|
13
|
+
|
14
|
+
import SwiftUI
|
15
|
+
|
12
16
|
|
13
17
|
@objcMembers public class ComposerPianoImpl: NSObject {
|
14
|
-
|
15
18
|
private var composer: PianoComposer?;
|
19
|
+
private var delegateHelper : MyComposerDelegate?;
|
20
|
+
public static var aid = "";
|
16
21
|
|
17
22
|
@objc public func initializeComposer(_ aid: String) -> PianoComposer? {
|
18
|
-
|
19
|
-
|
23
|
+
ComposerPianoImpl.aid = aid;
|
24
|
+
let tokenService = TokenService();
|
25
|
+
delegateHelper = MyComposerDelegate(tokenService: tokenService);
|
26
|
+
composer = PianoComposer(aid: ComposerPianoImpl.aid, endpoint: PianoEndpoint.sandbox);
|
27
|
+
composer = delegateHelper?.setComposerAndDelegate(composer!);
|
20
28
|
return composer;
|
21
29
|
}
|
22
30
|
|
23
31
|
@objc public func addTag(_ tag: String) -> PianoComposer? {
|
24
|
-
print("ASSIGN TAG");
|
25
32
|
return composer?.tag(tag);
|
26
33
|
}
|
34
|
+
@objc public func addTagToComposer(_ composer: PianoComposer, tag: String) {
|
35
|
+
composer.tag(tag);
|
36
|
+
}
|
27
37
|
|
28
38
|
@objc public func addTags(_ tags: [String]) -> PianoComposer? {
|
29
|
-
print("ASSIGN TAGS");
|
30
39
|
return composer?.tags(tags);
|
31
40
|
}
|
32
41
|
|
@@ -44,19 +53,96 @@ import PianoTemplate
|
|
44
53
|
|
45
54
|
@objc public func setCustomVariable(_ name: String, value: String) -> PianoComposer? {
|
46
55
|
return composer?.customVariable(name: name, value: value);
|
47
|
-
|
48
56
|
}
|
49
57
|
|
50
58
|
@objc public func setUserToken(_ token: String) -> PianoComposer? {
|
51
59
|
return composer?.userToken(token);
|
52
60
|
}
|
53
61
|
|
54
|
-
|
62
|
+
/*@objc public func executeComposer() -> PianoComposer? {
|
55
63
|
return composer?.execute();
|
64
|
+
}*/
|
65
|
+
@objc public func executeComposer() {
|
66
|
+
DispatchQueue.main.async {
|
67
|
+
guard let rootVC = UIApplication.shared.connectedScenes
|
68
|
+
.compactMap({ $0 as? UIWindowScene })
|
69
|
+
.first(where: { $0.activationState == .foregroundActive })?.windows
|
70
|
+
.first(where: { $0.isKeyWindow })?.rootViewController else {
|
71
|
+
return
|
72
|
+
}
|
73
|
+
|
74
|
+
self.composer?.execute()
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
|
80
|
+
// Delegate handler
|
81
|
+
@objc public func executeExperience() {
|
82
|
+
let eventDict: [String: Any] = [
|
83
|
+
"eventType": "login"
|
84
|
+
];
|
85
|
+
|
86
|
+
let xpEvent = XpEvent(dict: eventDict);
|
87
|
+
|
88
|
+
if(composer != nil && composer!.delegate != nil ) {
|
89
|
+
delegateHelper?.executeExperience(composer: composer!, event: xpEvent, params: nil);
|
90
|
+
}
|
56
91
|
}
|
92
|
+
|
93
|
+
@objc public func showLogin() {
|
94
|
+
let eventDict: [String: Any] = [
|
95
|
+
"eventType": "login"
|
96
|
+
];
|
97
|
+
|
98
|
+
let xpEvent = XpEvent(dict: eventDict);
|
99
|
+
|
100
|
+
if(composer != nil && composer!.delegate != nil ) {
|
101
|
+
delegateHelper?.myShowLogin(composer: composer!, event: xpEvent, params: nil);
|
102
|
+
}
|
103
|
+
}
|
104
|
+
|
105
|
+
@objc public func showTemplate() {
|
106
|
+
DispatchQueue.main.async {
|
107
|
+
guard let rootVC = UIApplication.shared
|
108
|
+
.connectedScenes
|
109
|
+
.compactMap({ $0 as? UIWindowScene })
|
110
|
+
.flatMap({ $0.windows })
|
111
|
+
.first(where: { $0.isKeyWindow })?
|
112
|
+
.rootViewController else {
|
113
|
+
print("⚠️ rootViewController non trovato")
|
114
|
+
return
|
115
|
+
}
|
116
|
+
|
117
|
+
let tokenService = self.delegateHelper!.tokenService
|
118
|
+
let view = ShowTemplateView(tokenService: tokenService)
|
119
|
+
let hostingController = UIHostingController(rootView: view)
|
120
|
+
hostingController.modalPresentationStyle = .fullScreen
|
121
|
+
|
122
|
+
rootVC.present(hostingController, animated: true, completion: nil)
|
123
|
+
}
|
124
|
+
}
|
125
|
+
|
126
|
+
@objc public func showForm() {
|
127
|
+
let eventDict: [String: Any] = [
|
128
|
+
"eventType": "form"
|
129
|
+
];
|
130
|
+
|
131
|
+
let xpEvent = XpEvent(dict: eventDict);
|
57
132
|
|
133
|
+
if(composer != nil && composer!.delegate != nil ) {
|
134
|
+
delegateHelper?.myShowForm(composer: composer!, event: xpEvent, params: nil);
|
135
|
+
}
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
public func findViewBySelector(selector: String) -> UIView? {
|
141
|
+
return nil;
|
142
|
+
}
|
143
|
+
|
58
144
|
|
59
|
-
//
|
145
|
+
// method to get values and helpers
|
60
146
|
@objc public func getAid() -> String {
|
61
147
|
if(composer != nil){
|
62
148
|
return composer?.aid ?? "";
|
@@ -74,7 +160,6 @@ import PianoTemplate
|
|
74
160
|
}
|
75
161
|
|
76
162
|
@objc public func getComposer() -> PianoComposer? {
|
77
|
-
print("GET COMPOSER");
|
78
163
|
return composer;
|
79
164
|
}
|
80
165
|
|
@@ -93,5 +178,35 @@ import PianoTemplate
|
|
93
178
|
@objc public func getUserToken() -> String {
|
94
179
|
return composer?.userToken ?? ""
|
95
180
|
}
|
181
|
+
|
182
|
+
@objc public func addTagsToComposer(_ composer: PianoComposer, tags: [String]) {
|
183
|
+
composer.tags(tags)
|
184
|
+
}
|
185
|
+
|
186
|
+
@objc public func setCustomVariable(_ composer: PianoComposer, name: String, value: String) {
|
187
|
+
composer.customVariable(name: name, value: value)
|
188
|
+
}
|
189
|
+
|
190
|
+
@objc public func setReferrer(_ composer: PianoComposer, referrer: String) {
|
191
|
+
composer.referrer(referrer)
|
192
|
+
}
|
193
|
+
|
194
|
+
@objc public func setUrl(_ composer: PianoComposer, url: String) {
|
195
|
+
composer.url(url)
|
196
|
+
}
|
197
|
+
|
198
|
+
@objc public func setUserToken(_ composer: PianoComposer, token: String) {
|
199
|
+
composer.userToken(token)
|
200
|
+
}
|
201
|
+
|
202
|
+
@objc public func setZoneId(_ composer: PianoComposer, zoneId: String) {
|
203
|
+
composer.zoneId(zoneId)
|
204
|
+
}
|
205
|
+
|
206
|
+
@objc public func executeComposer(_ composer: PianoComposer) {
|
207
|
+
DispatchQueue.main.async {
|
208
|
+
composer.execute()
|
209
|
+
}
|
210
|
+
}
|
96
211
|
|
97
212
|
}
|