@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.
- package/ios/Plugin/Plugin.m +2 -0
- package/ios/Plugin/Plugin.swift +103 -1
- package/package.json +1 -1
package/ios/Plugin/Plugin.m
CHANGED
|
@@ -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
|
)
|
package/ios/Plugin/Plugin.swift
CHANGED
|
@@ -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
|
-
|
|
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")
|