@hanwha-ss1/plugin 0.6.7 → 0.6.8-beta

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.
@@ -17,5 +17,7 @@ CAP_PLUGIN(Plugin, "Plugin",
17
17
  CAP_PLUGIN_METHOD(removeKeyboardMenu, CAPPluginReturnPromise);
18
18
  CAP_PLUGIN_METHOD(executeApp, CAPPluginReturnPromise);
19
19
  CAP_PLUGIN_METHOD(getCertificateProvisioning, CAPPluginReturnPromise);
20
+ CAP_PLUGIN_METHOD(saveUserDefault, CAPPluginReturnPromise);
21
+ CAP_PLUGIN_METHOD(getUserDefault, CAPPluginReturnPromise);
20
22
 
21
23
  )
@@ -13,6 +13,107 @@ import Contacts
13
13
  public class Plugin: CAPPlugin {
14
14
 
15
15
 
16
+
17
+ @objc func getUserDefault(_ call: CAPPluginCall) {
18
+ guard let userInfo = call.getString("data") else {
19
+ call.reject("No data string provided")
20
+ return
21
+ }
22
+
23
+ print("UserDefaults에 저장할 데이터: \(userInfo)")
24
+
25
+ guard let data = userInfo.data(using: .utf8) else {
26
+ call.reject("Failed to convert string to data")
27
+ return
28
+ }
29
+
30
+ do {
31
+ guard let jsonObject = try JSONSerialization.jsonObject(with: data) as? [String: Any] else {
32
+ call.reject("Failed to convert string to jsonObject")
33
+ return
34
+ }
35
+
36
+ guard let keyName = jsonObject["key"] as? String else {
37
+ call.reject("Failed to get key from jsonObject")
38
+ return
39
+ }
40
+
41
+ guard let sharedDefaults = UserDefaults(suiteName: "group.com.hanwha.cleverselite") else {
42
+ call.reject("Failed to access shared UserDefaults")
43
+ return
44
+ }
45
+
46
+ if let value = sharedDefaults.string(forKey: keyName) {
47
+ // 성공적으로 가져온 값 반환
48
+ call.resolve([
49
+ "data": value
50
+ ])
51
+ // call.resolve([
52
+ // "data": value
53
+ // ])
54
+ } else {
55
+ call.reject("No value found for key: \(keyName)")
56
+ }
57
+
58
+ } catch {
59
+ call.reject("JSON parsing error: \(error.localizedDescription)")
60
+ }
61
+ }
62
+
63
+
64
+ @objc func saveUserDefault(_ call: CAPPluginCall) {
65
+ if let userInfo = call.getString("data") {
66
+ print("UserDefaults에 저장할 데이터: \(userInfo)")
67
+
68
+ // data 매개변수가 없으면 에러
69
+ guard let data = userInfo.data(using: .utf8) else {
70
+ call.reject("Failed to convert string to data")
71
+ return
72
+ }
73
+
74
+ do {
75
+ // json 직렬화 안되면 에러
76
+ guard let jsonObject = try JSONSerialization.jsonObject(with: data) as? [String: Any] else {
77
+ call.reject("Failed to convert string to jsonObject")
78
+ return
79
+ }
80
+ // 키 값이 없으면 에러
81
+ guard let keyName = jsonObject["key"] as? String else {
82
+ call.reject("Failed to get key from jsonObject")
83
+ return
84
+ }
85
+ // value 값이 없으면 에러
86
+ guard let valueAny = jsonObject["value"] else {
87
+ call.reject("Failed to get key from value")
88
+ return
89
+ }
90
+
91
+ let valueData = try JSONSerialization.data(withJSONObject: valueAny, options: [])
92
+
93
+ guard let valueString = String(data: valueData, encoding: .utf8) else {
94
+ call.reject("Failed to valueString Data to String")
95
+ return;
96
+ }
97
+
98
+
99
+ // 그룹 설정에 대한 UserDefaults를 가져오지 못하면 에러
100
+ guard let sharedDefaults = UserDefaults(suiteName: "group.com.hanwha.cleverselite") else {
101
+ call.reject("Failed to access shared UserDefaults")
102
+ return
103
+ }
104
+
105
+ sharedDefaults.set(valueString, forKey: keyName);
106
+
107
+
108
+ } catch {
109
+ call.reject("JSON parsing error: \(error.localizedDescription)")
110
+ }
111
+
112
+
113
+ }
114
+ }
115
+
116
+
16
117
  override public func load() {
17
118
  // 문서뷰어 요청 이벤트
18
119
  NotificationCenter.default.addObserver(self, selector: #selector(handleDocumentViewRequest(_:)), name: .documentViewRequest, object: nil)
@@ -45,7 +146,8 @@ public class Plugin: CAPPlugin {
45
146
  return;
46
147
  }
47
148
 
48
- guard let contentString = String(data: content, encoding: .ascii),
149
+ // 구형기기에서는 ascii, 최신기기는 isoLatin1
150
+ guard let contentString = String(data: content, encoding: .isoLatin1) ?? String(data: content, encoding: .ascii),
49
151
  let startRange = contentString.range(of: "<plist"),
50
152
  let endRange = contentString.range(of: "</plist>") else {
51
153
  print("Failed to parse plist from provisioning profile")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanwha-ss1/plugin",
3
- "version": "0.6.7",
3
+ "version": "0.6.8-beta",
4
4
  "description": "Plugin",
5
5
  "main": "dist/plugin.cjs.js",
6
6
  "module": "dist/esm/index.js",