react-native-sdk-pianoio 0.2.1 → 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 +10 -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
@@ -53,13 +53,14 @@ npx expo start
|
|
53
53
|
|
54
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
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.
|
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
57
|
|
58
|
-
Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
|
58
|
+
Un esempio concreto è l’uso del tipo facebook::react::EventEmitterCallback, che esiste solo all’interno della New Architecture.
|
59
59
|
|
60
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
61
|
|
62
|
-
Una volta installato il pacchetto e aver eseguito:
|
62
|
+
Una volta installato il pacchetto e aver eseguito:
|
63
|
+
|
63
64
|
```sh
|
64
65
|
npx expo run:ios
|
65
66
|
```
|
@@ -75,10 +76,11 @@ Dovrebbe comparire una serie di errori simili a questo:
|
|
75
76
|
| ^ no type named 'EventEmitterCallback' in namespace 'facebook::react'
|
76
77
|
73 | }
|
77
78
|
74 | - (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *) eventEmitterCallbackWrapper;
|
78
|
-
75 |
|
79
|
+
75 |
|
79
80
|
```
|
80
81
|
|
81
82
|
I file causanti di questi errori sono:
|
83
|
+
|
82
84
|
- RNSdkPianoioSpec.h
|
83
85
|
- RNSdkPianoioSpec-generated.mm
|
84
86
|
|
@@ -95,6 +97,7 @@ Quindi, cliccare sulla referenza del file e andare alla linea dell'errore.
|
|
95
97
|
|
96
98
|
@end
|
97
99
|
```
|
100
|
+
|
98
101
|
Sostituire il codice sovrastante con:
|
99
102
|
|
100
103
|
```
|
@@ -132,8 +135,7 @@ Sostituire il codice sovrastante con:
|
|
132
135
|
@end
|
133
136
|
```
|
134
137
|
|
135
|
-
|
136
|
-
### React native
|
138
|
+
### React native
|
137
139
|
|
138
140
|
Nel progetto di react native eseguire:
|
139
141
|
|
@@ -141,7 +143,7 @@ Nel progetto di react native eseguire:
|
|
141
143
|
npm install react-native-sdk-pianoio
|
142
144
|
```
|
143
145
|
|
144
|
-
#### iOS
|
146
|
+
#### iOS
|
145
147
|
|
146
148
|
Nel progetto di react native entrare nella cartella per ios ed installare le dipendenze:
|
147
149
|
|
@@ -149,7 +151,7 @@ Nel progetto di react native entrare nella cartella per ios ed installare le dip
|
|
149
151
|
pod install
|
150
152
|
```
|
151
153
|
|
152
|
-
#### Android
|
154
|
+
#### Android
|
153
155
|
|
154
156
|
Nel progetto di react native entrare nella cartella per android e [...]
|
155
157
|
|
@@ -275,7 +277,6 @@ PianoComposer {
|
|
275
277
|
|
276
278
|
Crea e inizializza una nuova istanza di `PianoComposer`.
|
277
279
|
|
278
|
-
|
279
280
|
### `PianoComposer.isInitialized(): Promise<boolean>`
|
280
281
|
|
281
282
|
Verifica se il composer è stato inizializzato correttamente a livello nativo.
|
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
|
}
|